Bu makalede Deep Soft tarafından hazırlanan Deep Soft hMail Admin Panel'i tanıtacağız,
Deep Soft hMail Admin Panel hMail server için yazılmış Asp kodlama ve DLL bileşeni ile,
kullanışlı web ara yüzü sayesinde 10 Alan Adına kadar ücretsiz mail server yönetimini sağlayan bir panelidir.
* MySQL DataBase, Dakika,Saat,Gün Limiti
* Farklı sürümleri incelemek için tıklayınız.
Kurulum ve kullanım sırasında karşınıza çıkabilecek sorunlar ve soruların için iletişim adresimizden bize ulaşabilirsiniz.
Alan Adı Özellikleri
> Alan Adı Ekleme (Domain) (Mail Limiti, Disk Limiti, Günlük Gönderim Limiti)
> Alan Adı Silme
> Posta Yakalama (catch all)
> Alan Adı Disk Kullanım Durumu
> Takma Alan Adı - Domain Alias Ekleme
> Takma Alan Adı (Domain Alias) Silme
Email Özellikleri
> Email Hesabı Ekleme ( Disk Limiti, Günlük Gönderim Limiti )
> Email Hesabı Silme
> Email Hesabı Şifre Değiştirme
> Email Hesabı Yönlendirme ve Yönlendirilen Postayı Koruma
> Email Hesabı Disk Kullanım Durumu
> Email Hesabı Disk Temizleme
> Sanal Email Hesabı Oluşturma
> Email Kullanıcısı Ad ve Soyad Tanımlaması <---------- ** Yeni **
> Otomatik Cevap (Auto-Reply) <------------------------ ** Yeni **
> Son Kontrol (Last Logon Time) <---------------------- ** Yeni **
Script Özellikleri
> Günlük Gönderim Limiti
> Saatlik Gönderim Limiti
> Dakikalık Gönderim Limiti
> hMailAdmin , hMailAdmin SQL File , hMailAdmin VBS File dosyalarını indiriniz
> hMailAdmin Dosyaları, Kurulumu yapmak istediğiniz sürücüye çıkartınız.
E:\hMailAdmin
E:\hMailAdmin\App
E:\hMailAdmin\Logs
E:\hMailAdmin\Panel
> hMailAdmin\App klasörünün altında bulunan "Setting.exe" yi çalıştırınız.
> hMail Server alanında bulunan Admin Name ve Password alanına hmail server giriş bilgilerini yazınız.
> MySQL Server alanında bulunan inputlara sırası ile MySQL Server bilgilierinizi giriniz
> hMail Panel alanında bulunan inputlara paneli kullanmak istediğiniz IP,PORT bilgisi giriniz
> hMail Panel alanında bulunan Windows Server alanında işletim sistemi seçiniz
> Veriler girildikten sonra Register hMail DLL ile Deep Soft hMail DLL i register ediniz
> Kaydet Butonunu tıklayıp girdiğiniz verilerin Windows klasöründe yer alan DeepSoftPanel.INI dosyasına kaydediniz
> Son olarak Paneli Kur butonunu tıklayarak kurulum tamamlandı mesajını alana kadar bekleyiniz.
> Panelimiz kullanıma hazır :)
hMail server için kullandığınız veri tabanına eklenmesi gereken tabloları import ediniz
# MySQL-Front 5.0 (Build 1.0)
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */;
/*!40101 SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES */;
/*!40103 SET SQL_NOTES='ON' */;
# Host: localhost Database: hmail
# ------------------------------------------------------
# Server version 5.1.42-community
USE `hmail`;
#
# Table structure for table ex_admin
#
DROP TABLE IF EXISTS `ex_admin`;
CREATE TABLE `ex_admin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`UserName` varchar(255) DEFAULT NULL,
`Password` varchar(255) DEFAULT NULL,
`LoginSession` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `whiteid` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO `ex_admin` VALUES (1,'admin','admin','');
#
# Table structure for table ex_alias
#
DROP TABLE IF EXISTS `ex_alias`;
CREATE TABLE `ex_alias` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Domain` varchar(255) DEFAULT NULL,
`DomainAlias` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `whiteid` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#
# Table structure for table ex_mail
#
DROP TABLE IF EXISTS `ex_mail`;
CREATE TABLE `ex_mail` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Domain` varchar(255) DEFAULT NULL,
`Mail` varchar(50) DEFAULT NULL,
`Password` varchar(20) DEFAULT NULL,
`Alias` varchar(255) DEFAULT NULL,
`Forward` varchar(255) DEFAULT NULL,
`MailBox` int(11) DEFAULT NULL,
`MailDay` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#
# Table structure for table ex_out
#
DROP TABLE IF EXISTS `ex_out`;
CREATE TABLE `ex_out` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`LocalDomain` varchar(255) DEFAULT NULL,
`Gonderen` varchar(255) DEFAULT NULL,
`IPAddress` varchar(15) DEFAULT NULL,
`AliciSayisi` int(11) DEFAULT '0',
`SendDate` varchar(10) DEFAULT NULL,
`SendHH` varchar(2) DEFAULT NULL,
`SendMM` varchar(2) DEFAULT NULL,
`Kod` int(1) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#
# Table structure for table ex_server
#
DROP TABLE IF EXISTS `ex_server`;
CREATE TABLE `ex_server` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Domain` varchar(255) DEFAULT NULL,
`Limit_Mail` int(11) DEFAULT '0',
`Limit_MailBox` int(11) DEFAULT '0',
`Limit_MailDay` int(11) DEFAULT '0',
`Password` varchar(20) DEFAULT NULL,
`Server_Status` int(1) DEFAULT '2',
`LoginSession` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `whiteid` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
Limit Dosyasını mail server altındaki Events klasörüne kopyalayınız
\\hMailServer\Events
Public ObjAPP
Public Const LocalHostIP = "0.0.0.0"
Public Const AdminName = "Administrator"
Public Const AdminPass = "123456"
' hMail Server admin şifresi değiştirilmeli
Public Const UserLimit = 250
' varsayılan günlük user limiti
Public Const HLimit = 100
' varsayılan saatlik limit
Public Const MLimit = 30
' varsayılan dakikalık limit
Sub OnAcceptMessage(oClient, oMessage)
Dim obDatabase
Set obDatabase = GetDatabaseObject
Dim sSQL
Dim Gonderen
Dim IPAddress
Dim SendDate
Dim AliciSayisi
Dim MailDay
SendDate = Get_Date
Result.Value = 0
Set ObjAPP = CreateObject("hMailServer.Application")
Call ObjAPP.Authenticate(AdminName, AdminPass)
Set Bag = CreateObject("ADODB.Connection")
Bag.Open "DRIVER={MySQL ODBC 5.1 Driver}; SERVER=localhost; DATABASE=hmail; UID=root; PWD=123456; PORT=3306;"
'MySQL baglantı satırını kendi veri tabanı bağlantınıza göre değiştiriniz.
If User_Authenticated(oClient) Then
AliciSayisi = omessage.Recipients.count
Gonderen = oCLient.username
IPAddress = oClient.IPAddress
LocalDomain = MailDomain(Gonderen)
LocalUser = MailUSer(Gonderen)
SendHH = Mid(time(),1,2)
SendMM = Mid(time(),4,2)
Set RsL = CreateObject("ADODB.Recordset")
sorgu = "SELECT * FROM ex_mail where Domain = '" & LocalDomain & "' and Mail='"& LocalUser &"'"
RsL.open Sorgu, bag, 3, 1
Do while not RsL.eof
MailDay = RsL("MailDay")
RsL.movenext
Loop
RsL.close
set RsL = Nothing
Set Rs = CreateObject("ADODB.Recordset")
gCount = 0
sorgu = "SELECT * FROM ex_out where SendDate = '" & SendDate & "' and Gonderen='"& oCLient.username &"'"
Rs.open Sorgu, bag, 3, 1
Do while not rs.eof
sy = rs("AliciSayisi")
gCount = gCount + sy
rs.movenext
Loop
rs.close
set rs=Nothing
Set Rsh = CreateObject("ADODB.Recordset")
hCount = 0
hsorgu = "SELECT * FROM ex_out where SendHH = '" & SendHH & "' and SendDate = '" & SendDate & "' and Gonderen='"& oCLient.username &"'"
Rsh.open hSorgu, bag, 3, 1
Do while not rsh.eof
hsy = rsh("AliciSayisi")
hCount = hCount + hsy
rsh.movenext
Loop
rsh.close
set rsh=Nothing
Set Rsm = CreateObject("ADODB.Recordset")
mCount = 0
msorgu = "SELECT * FROM ex_out where SendHH = '" & SendHH & "' and SendMM = '" & SendMM & "' and SendDate = '" & SendDate & "' and Gonderen='"& oCLient.username &"'"
Rsm.open mSorgu, bag, 3, 1
Do while not rsm.eof
msy = rsm("AliciSayisi")
mCount = mCount + msy
rsm.movenext
Loop
rsm.close
set rsm=Nothing
Send_Code = 0
if mCount >= MLimit Then
Send_Code = 1
Result.Message = "Dakikalik Mail Gonderim Limiti Dolu " & " ( "& mCount &" ) "
Result.Value = 2
End If
if hCount >= HLimit Then
Send_Code = 2
Result.Message = "Saatlik Mail Gonderim Limiti Dolu " & " ( " & hCount & " ) "
Result.Value = 2
End If
If MailDay > 0 Then
if gCount >= MailDay Then
Send_Code = 3
Result.Message = "Gunluk Mail Gonderim Limiti Dolu " & " ( "& gCount & " ) "
Result.Value = 2
End If
else
if gCount >= UserLimit Then
Send_Code = 3
Result.Message = "Gunluk Mail Gonderim Limiti Dolu " & " ( "& gCount & " ) "
Result.Value = 2
End If
End if
sSQL = "insert into ex_out (Gonderen, LocalDomain, IPAddress, AliciSayisi,SendDate,SendHH,SendMM,Kod) values ('"&Gonderen&"','"&LocalDomain&"','"&IPAddress&"','"&AliciSayisi&"','" & SendDate & "','"&SendHH&"','"&SendMM&"','"&Send_Code&"')"
Call obDatabase.ExecuteSQL(sSQL)
Else
' spam listlerde olduğu için [SPAM] tagı eklenen her maili mailleri reject etmek istersiniz diye düşündük
If instr(omessage.Subject,"[SPAM]") > 0 Then
Kabul = False
Else
Kabul = True
End If
If Kabul = False then
Result.Message = "Spam Filter Active" & Red_MSG
Result.Value = 2
End If
End If
bag.close
set bag=Nothing
End Sub
Function User_Authenticated(oclient)
User_Authenticated = false
If oCLient.username <> "" Or InStr(1," " & LocalHostIP, oClient.IPAddress) > 0 Then
User_Authenticated = true
End if
End Function
Function Get_Date
Dim tmp
Dim erg
tmp = Year(Date)
erg = CStr(tmp)
If Month(Date) < 10 Then
tmp = "0" & Month(Date)
Else
tmp = Month(Date)
End If
erg = erg & tmp
If day(Date) < 10 Then
tmp = "0" & day(Date)
Else
tmp = day(Date)
End If
erg = erg & tmp
Get_Date = erg
End Function
Function GetDatabaseObject()
Dim obApp
Set obApp = CreateObject("hMailServer.Application")
Call obApp.Authenticate(AdminName, AdminPass)
Set GetDatabaseObject = obApp.Database
End Function
Function Escape(obDatabase, value)
value = Replace(value, "'", "''")
Select Case obDatabase.DatabaseType
Case 1: ' MySQL
value = Replace(value, "\", "\\")
Case 3: ' PGSQL
value = Replace(value, "\", "\\")
End Select
Escape = value
End Function
Function GetTimestamp(obDatabase)
Select Case obDatabase.DatabaseType
Case 1: ' MySQL
GetTimestamp = "NOW()"
Case 2: ' MSSQL
GetTimestamp = "GETDATE()"
Case 3: ' PGSQL
GetTimestamp = "current_timestamp"
Case 4: ' SQL CE
GetTimestamp = "GETDATE()"
End Select
End Function
Function MailDomain(address)
MailBolelim = Split(address,"@")
MailDomain = MailBolelim(1)
End Function
Function MailUser(address)
MailBolelim = Split(address,"@")
MailUser = MailBolelim(0)
End Function