DZ通过PHP 函数的sendmail 发送(推荐此方式)的详细教程?

[复制链接]

微信扫一扫 分享朋友圈

admin 发表于 2019-12-10 11:52:25 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册  

x
PHP 函数的 sendmail 发送 需要你服务器的PHP配置mail函数
使用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服务器就可以了。
学院微信:lovebaby_2048
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

服务电话

400-123-2822

QQ客服:1691000615
关注我们 :

小黑屋- 搜道学院官网 - 搜道网校专注于互联网新兴项目网上学习平台

Powered by So163.Cn X3.2© 2005-2020 BBS Inc.  网上学习就在搜道网校!