初试hmailserver的COM API
这几天想给所有的邮箱帐号添加个中继路由和规则,将近一百个帐号添加起来挺费神的,想偷偷懒看有没有什么方法能批量添加,所以跑去官方看了半天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里也没有这个,至于规则,里面的条件和动作也不知道怎么添加,继续慢慢看慢慢试。
上一篇: 通达OA2009源代码下载
2011/04/14 12:12:37
你是指在webmail?你用的什么webmail?用客户端应该是没有问题的吧。
2011/04/14 09:44:41
你好,我想请问下,为什么发到hmail的附件下载到本地都用不了呢?word乱码,图片是坏的,但是我把发过来的邮件转发到163之类的邮箱附件下载下来正常的,是哪里不对啊?
2011/04/10 21:21:54
hm论坛上有专门批量导入账号的脚本的
2011/03/22 16:31:22
那个webmail是跟邮件软件一起的吧,10用户还不如用mailenable呢,至少mailenable无限制
2011/03/20 17:16:10
原因我找到了,郁闷,我下载的版本被别人修改过了。也就是functions\i18n.php文件被修改过了,这个里面可以定义可使用的语言列表,被被人改成只能使用德文和英语了,所以你即使怎么修改config.php都无效,我一般只需要简体中文,繁体中文和英语,所以我也就修改了这个文件,只保留三个语言列表选择即可。
另外发现一个非常漂亮的WEBMAIL,不过只有10用户版,超漂亮呀。SmarterMail
2011/03/19 12:26:47
把语言包整个覆盖过去,然后配置config.php就行了,实在不行你登录后在设置里面改一下看看,我装了perl之后用conf.pl设置的,不过这个也只是改了config.php啊
2011/03/17 23:19:37
另外,问下兄弟,怎么把squirrelmai修改为中文界面,我下载了语言包,把config.php的默认语言置为中文,可就还是英文,而且设置中有几个语言选择,设置后也总是为英文
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
2011/03/15 08:23:02
关于Hmailserver密码加密算法请看这篇文章,http://lqixv.javaeye.com/blog/833194
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
2011/03/12 13:35:49
大概是过来转了一圈…