Windows系统配置PHP和sendmail使用mail函数在Discuz!论坛

日期:2014-11-05 / 人气: / 来源:网络

使用PHP Sendmail协作来发送邮件需要三个条件:PHP环境 + Sendmai程序   smtp服务器。这样做比直接调用PHP相关参数来发邮件的好处可能是比较耗资源的Socket连接都可以有sendmail来实现,而不必由PHP自己来实现,我实际比较过,确实速度要快很多。

首先需要一个Sendmail组件,XAMPP套件里就有一个。把整个SendMail文件夹拷贝到合适的目录下,例如”D:/SendMail/”

在php.ini中配置相应的sendmail参数:
[mail function]
; For Win32 only.
SMTP = smtp.163.com (如果同一台服务器上存在SMTP服务器,则可以保留localhost不变,否则,填写一个比较可靠的smtp服务器地址,例如163,gmail等)
smtp_port = 25   (如果服务器无需验证,则填写25端口;或者自架SMTP服务器,为了安全起见 ,另改一个通信端口号;或者使用启用ssl的smtp服务器,则填写465端口);
; For Win32 only.
sendmail_from = aa@163.com   (貌似这个没什么具体作用?)
; For Unix only. You may supply arguments as well (default: “sendmail -t -i”).
sendmail_path =”D:/SendMail/sendmail.exe -t”  (这里填写刚才sendmail文件夹放置的位置,文件夹下有一个sendmail.exe执行文件)
同样,在sendmail目录下的sendmail.ini文件里,也要配置相应的参数,除了上面“smtpserver=”和“smtpport=”外,还可能需要配置如下参数:
auth_username=
auth_password=               (如果使用ssl方式的smtp服务器,需要填写这两个参数,分别把登录邮箱的用户名和密码设置进去就可以了) ;error_logfile=error.log
;debug_logfile=debug.log    (如果需要输出调试信息,就需要把这两句前面的分号去掉,error.log里保存报错信息,debug.log里保存每一条发送记录)
这样配置后就可以直接使用PHP自带的mail()函数来发送邮件了。
重启Aapche后,使用php sendmail测试mail()功能

<?php
$now = date(“Y-m-d h:i:s”);
$from_name = ’测试寄件人’;
$from_email =
$headers = ’From: $from_name <$from_email>’;
$body = ’嗨, n 这是一封测试邮件来自 $from_name <$from_email>.’;
$subject = ’[$now] 测试邮件发送’;
if (mail($to, $subject, $body, $headers)) {
echo ”success!”;
} else {
echo ”fail…”;
}
?>

这样,Windows下使用php sendmail配置就顺利完成了!
如果在Discuz!论坛中,除了在后台页面启用“通过 PHP 函数的 sendmail 发送(推荐此方式)”外,只需要按本文的方式修改sendmail.ini相关参数,如是本机架设smtp服务器,则再启用smtp服务器就可以了。

如何配置PHP.ini 中 sendmail_path

导读:用php的mail函数发邮件,居然发不了,然后在/var/log/maillog查看日志,发现一下几行 warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol

MySQL安装,php,

作者:管理员




现在致电4006-2991-90 OR 查看更多联系方式 →

Go To Top 回顶部