初试hmailserver的COM API

时间: 2011-03-11 / 分类: 邮件服务器 / 浏览次数: 12,381 / 11个评论 发表评论

这几天想给所有的邮箱帐号添加个中继路由和规则,将近一百个帐号添加起来挺费神的,想偷偷懒看有没有什么方法能批量添加,所以跑去官方看了半天COM API,呃,对这些东西真的不懂,对VBS脚本也一窍不通,所以就边看边琢磨,费了半天时间就弄出来一点下面的东西。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Option Explicit
 
Dim obApp
Set obApp = CreateObject("hMailServer.Application")
'Dim sAdminPwd
'sAdminPwd = InputBox("请输入你的hMailServer管理员密码!", "hMailServer")
'Call obApp.Authenticate ("Administrator", sAdminPwd)
Call obApp.Authenticate ("Administrator", "password")
 
 
Dim sUser
sUser = InputBox("请输入路由域名或名称!", "添加路由")
 
Dim obRoute
Set obRoute = obApp.Settings.Routes.Add
 
obRoute.DomainName = sUser
obRoute.Description = sUser
obRoute.TargetSMTPHost="smtp.osmail.cn"
obRoute.TargetSMTPPort="25"
obRoute.TreatSecurityAsLocalDomain = False
obRoute.MinutesBetweenTry = "60"
obRoute.NumberOfTries = "4"
obRoute.RelayerRequiresAuth=True
obRoute.RelayerAuthUsername=sUser&"@osmail.cn"
 
obRoute.Save
 
Dim obRule
Set obRule = obApp.Rules.Add
 
obRule.Name = sUser
obRule.UseAND = True
obRule.Active = True
obRule.Save

只能写到这里了,实在是不懂得这东西,只是让操作简单一点,双击运行,输入一个名字就添加一条路由和一条规则,但路由中帐号的密码要重新输入,我不知道怎么折腾进去,API里也没有这个,至于规则,里面的条件和动作也不知道怎么添加,继续慢慢看慢慢试。

11个评论

  1. Dagai
    2011/04/14 12:12:37

    你是指在webmail?你用的什么webmail?用客户端应该是没有问题的吧。

  2. oTUo
    2011/04/14 09:44:41

    你好,我想请问下,为什么发到hmail的附件下载到本地都用不了呢?word乱码,图片是坏的,但是我把发过来的邮件转发到163之类的邮箱附件下载下来正常的,是哪里不对啊?

  3. topper
    2011/04/10 21:21:54

    hm论坛上有专门批量导入账号的脚本的

  4. Dagai
    2011/03/22 16:31:22

    那个webmail是跟邮件软件一起的吧,10用户还不如用mailenable呢,至少mailenable无限制

  5. hunrybecky
    2011/03/20 17:16:10

    原因我找到了,郁闷,我下载的版本被别人修改过了。也就是functions\i18n.php文件被修改过了,这个里面可以定义可使用的语言列表,被被人改成只能使用德文和英语了,所以你即使怎么修改config.php都无效,我一般只需要简体中文,繁体中文和英语,所以我也就修改了这个文件,只保留三个语言列表选择即可。
    另外发现一个非常漂亮的WEBMAIL,不过只有10用户版,超漂亮呀。SmarterMail

  6. Dagai
    2011/03/19 12:26:47

    把语言包整个覆盖过去,然后配置config.php就行了,实在不行你登录后在设置里面改一下看看,我装了perl之后用conf.pl设置的,不过这个也只是改了config.php啊

  7. hunrybecky
    2011/03/17 23:19:37

    另外,问下兄弟,怎么把squirrelmai修改为中文界面,我下载了语言包,把config.php的默认语言置为中文,可就还是英文,而且设置中有几个语言选择,设置后也总是为英文

  8. hunrybecky
    2011/03/16 17:43:06

    看了下那文章,只说了加密,没有说解密,而且HMAIL也只提供了加密函数,而没有提供解密函数。我现在只有把逐账号中继的账号和密码保存到一个文本中,然后使用脚本来逐账号中继。代码如如下
    Function UseUserRelayEmail(oClient, oMessage)
    ‘使用用户自己的账号作为中继账号到企业邮局
    If InStr(oMessage.FromAddress, LocalDomain) Then ‘如果发送者匹配指定的本地域
    set FSO=CreateObject(“Scripting.FileSystemObject”)
    Set txtfile = FSO.OpenTextFile(UseUserEmail,1,TriStateTrue) ‘打开逐账号中继用户列表(本地用户列表)
    Do Until txtfile.AtEndOfStream
    strtxt = split(txtfile.ReadLine,”,”) ‘获取逐账号中继用户名和密码列表,二者之间用逗号分开
    If LCase(strtxt(0))=LCase(oClient.Username) Then ‘如果找到发件者用户名则使用发件者账号和密码中继(如果用户密码不正确则中继会失败如何处理?)
    ReplayUser=oClient.Username
    ReplayUserPW=strtxt(1)
    Else ‘如果找不到对应的发件者则使用下面指定的账号和密码进行中继
    ReplayUser=UseReplayUser
    ReplayUserPW=UseReplayUserPW
    End If
    obApp.Settings.SMTPRelayerUsername=ReplayUser
    obApp.Settings.SetSMTPRelayerPassword(ReplayUserPW)
    ‘If Err.Number0 then
    ‘EventLog.Write ReplayUser & “:” & ReplayUserPW & “,ERR:” & Err.Number & “:” & Err.Description
    ‘End if
    Loop
    txtfile.Close
    End if
    End Function

  9. dagai.net
    2011/03/15 08:23:02

    关于Hmailserver密码加密算法请看这篇文章,http://lqixv.javaeye.com/blog/833194

  10. hunrybecky
    2011/03/14 22:16:41

    写了一个逐账号中继函数,发现HMAIL获取到得密码是加密的,所以不知道怎么解密后再作为中继账号的密码,有兴趣的研究下,代码如下。
    Function UseUserEmail(oClient, oMessage)
    ‘使用用户自己的账号作为中继账号到企业邮局
    If InStr(oMessage.FromAddress, LocalDomain) Then ‘如果发送者匹配指定的本地域
    ReplayUser=oClient.Username
    ReplayMD5Pw=obApp.Domains.ItemByName(LocalDomain).Accounts.ItemByAddress(ReplayUser).Password
    ‘ReplayPw=obApp.Utilities.BlowfishDecrypt(ReplayMD5Pw)
    obApp.Settings.SMTPRelayerUsername=ReplayUser
    obApp.Settings.SetSMTPRelayerPassword(ReplayPw)
    EventLog.Write ReplayUser & “:” & ReplayMD5Pw
    End if
    End Function

  11. 如果的事
    2011/03/12 13:35:49

    大概是过来转了一圈…

发表评论

您的昵称 *

您的邮箱 *

您的网站