diff --git a/MailServer/DataBase/MysqlConnector.cs b/MailServer/DataBase/MysqlConnector.cs
new file mode 100644
index 0000000..840581b
--- /dev/null
+++ b/MailServer/DataBase/MysqlConnector.cs
@@ -0,0 +1,38 @@
+/*using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;*/
+using MySql.Data.MySqlClient;
+
+namespace MailServer.DataBase
+{
+ class MysqlConnector
+ {
+ private string server = "localhost";
+ private string db = "";
+ private string user = "root";
+ private string pass = "mafia";
+ private MySqlConnection connection;
+ public MysqlConnector()
+ {
+ string myConnectionString = "SERVER=" + server + ";" +
+ "DATABASE=" + db + ";" +
+ "UID=" + user + ";" +
+ "PASSWORD=" + pass + ";";
+ connection = new MySqlConnection(myConnectionString);
+ }
+ ~MysqlConnector()
+ {
+ connection.Close();
+ }
+ public MySqlDataReader read(string sql)
+ {
+ MySqlCommand command = connection.CreateCommand();
+ command.CommandText = sql;
+ connection.Open();
+ MySqlDataReader reader = command.ExecuteReader();
+ connection.Close();
+ return reader;
+ }
+ }
+}
diff --git a/MailServer/DataBase/MysqlImap.cs b/MailServer/DataBase/MysqlImap.cs
new file mode 100644
index 0000000..963f983
--- /dev/null
+++ b/MailServer/DataBase/MysqlImap.cs
@@ -0,0 +1,42 @@
+using System;
+/*using System.Collections.Generic;
+using System.Linq;
+using System.Text;*/
+
+using System.Text.RegularExpressions;
+using MySql.Data.MySqlClient;
+
+namespace MailServer.DataBase
+{
+ class MysqlImap
+ {
+ private MysqlConnector mysql;
+ public MysqlImap()
+ {
+ mysql = new MysqlConnector();
+ }
+ public bool checkUser(string user, string pass)
+ {
+ MySqlDataReader reader = mysql.read("SELECT `pass` FROM `users` WHERE `user` = '"+escape(user)+"';");
+ if(!reader.HasRows)
+ return false;
+ while(reader.Read()) {
+ if(reader.GetString(0) == pass)
+ return true;
+ }
+ return false;
+ }
+
+ private string escape(string str)
+ {
+ try
+ {
+ return Regex.Replace(str,@"(\\)([\000\010\011\012\015\032\042\047\134\140])","$2");
+ }
+ catch(Exception)
+ {
+ return "";
+ }
+ }
+ }
+}
diff --git a/MailServer/MailServer.csproj b/MailServer/MailServer.csproj
index d2440db..4d821d0 100644
--- a/MailServer/MailServer.csproj
+++ b/MailServer/MailServer.csproj
@@ -34,6 +34,10 @@
4
+
+ False
+ E:\Programme\MySql\CS\Assemblies\MySql.Data.dll
+
@@ -44,6 +48,8 @@
+
+
Code
@@ -105,10 +111,18 @@
Component
-
-
-
-
+
+ Component
+
+
+ Component
+
+
+ Component
+
+
+ Component
+
Code
diff --git a/MailServer/Services/IMAP/Server/IMAP_Service.Events.cs b/MailServer/Services/IMAP/Server/IMAP_Service.Events.cs
index 46c4abe..e142ab3 100644
--- a/MailServer/Services/IMAP/Server/IMAP_Service.Events.cs
+++ b/MailServer/Services/IMAP/Server/IMAP_Service.Events.cs
@@ -13,7 +13,9 @@ namespace MailServer.Services
{
void server_AuthUser(object sender, AuthUser_EventArgs e)
{
+ e.Validated = database.checkUser(e.UserName, e.PasswData);
Console.WriteLine(e.ToString());
+
}
void server_CopyMessage(object sender, Message_EventArgs e)
diff --git a/MailServer/Services/IMAP/Server/IMAP_Service.cs b/MailServer/Services/IMAP/Server/IMAP_Service.cs
index 6169815..0769873 100644
--- a/MailServer/Services/IMAP/Server/IMAP_Service.cs
+++ b/MailServer/Services/IMAP/Server/IMAP_Service.cs
@@ -8,17 +8,20 @@ using System.ServiceProcess;
using System.Text;
using LumiSoft.IMAP.Server;
+using MailServer.DataBase;
namespace MailServer.Services
{
public partial class IMAP_Service : ServiceBase
{
private IMAP_Server server;
+ private MysqlImap database;
public IMAP_Service()
{
InitializeComponent();
- putEvents();
+ database = new MysqlImap();
+ putEvents();
}
private void putEvents()