雕虫小技让Discuz利用WinwebMail发邮件

来源:互联网 发布:剑灵捏脸数据人女马尾 编辑:程序博客网 时间:2024/04/28 04:11

(此文首发在phpchina论坛)

此文适合的读者:企业内部网的各种web服务捣鼓者,菜鸟级文章.
环境:在企业内部网使用了WinwebMail作为邮件程序,近日又添新丁Discuz!7.2(以下简称DZ7)作为BBS,操作系统是Win2kADS主机,IIS5+PHP5.2.0.在新用户注册的验证里设置了邮件验证,使用DZ7提供的三种方式发邮件均不成功.三种方式是sendmail,socket,mail函数.sendmail是Linux下的东东,windows下就不想它了;socket支持登录验证,应该用它有可能成功;最后一种mail函数,翻php函数手册,也没有登录的功能.winwebmail要登录才能发信,那就朝socket的登录上努力吧.
谷歌一下之后,本人菜鸟一个,直接运行PHP的安装程序PHPv5·2ForWindows安装版.msi,选择改变,查看还有哪些dll库可以装,有这么些:mailparse,SMTP,sockets.这三个应该和邮件有关.再翻手册,mailparse只是进行邮件解析的,可能没什么用,不装.SMTP和套接字函数库sockets,和邮件发送息息相关,装上.注意如果web服务器是IIS只需将服务停了再开下就好,Apache则可能需要重启计算机.完成后用phpinfo();函数看下,SMTP和sockets确实已经启用了.
第一步我们装完库后,再来第二步,翻翻php.ini文件,有这么个邮件设置段:
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
; For Win32 only.
;sendmail_from = me@example.com
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =
将SMTP主机设置到运行winwebmail的主机上,我的服务器PHP程序和winwebmail在一起,用 telnet 127.0.0.1 25 命令试下确实得到了winwebmail的返回信息,那个sendmail_from 参数,想设就把注释去掉.
好了,第三步,回到DZ里,选使用sockets进行发邮件,要求身份验证,设置好相关信息后,在测试页面可以发封邮件给winwebmail的admin账号,确实可以成功哈.新用户注册时如果使用Email发送欢迎信息或者需要Email验证,只要邮件地址正确,也都可以收到邮件.
OK,小功告成.

原创粉丝点击