欢迎发布文章/投稿,输入文章内容
由于项目需要,必须支持php使用原生mail函数实现邮件发送;
所以暂时抛弃使用邮件类,linuxmail等解决方案
在网上捣鼓半天sendmail,网上的资料翻了遍,都没找到很好的解决方法
由于服务器封禁了25端口,必须要通过465发送邮件
最后终于找到了使用postfix的可行方法,这里记录一下问题,方便以后备查,也方便遇到同样问题的小伙伴查阅
此处内容需要权限查看
3.添加发邮件用的服务器地址以及发邮件的账户密码
vi /etc/postfix/sasl_passwd
[smtp.exmail.qq.com] 123@qq.com:密码 //这里使用的是qq的邮箱服务器,需要开启qq邮箱的smtp服务,并获取验证码
4.保存文件后执行
postmap /etc/postfix/sasl_passwd
postfix reload
5.编辑main.cf文件
vi /etc/postfix/main.cf
relayhost = [smtp.exmail.qq.com] //这个地方要和前面一样
#添加以下项,先搜索项名称,如果存在则修改后面的值即可
smtpd_sasl_auth_enable = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt
6.修改php.ini
sendmail_path = /usr/sbin/sendmail.postfix -f 123@qq.com -t -i
重点是-f 邮箱名,否则会报501,来源必须和作者一致
7.重启fpm,postfix服务
service php-fpm restart
service postfix restart
8.新建php文件进行测试
mail(“@qq.com”, “Subject for php”, “test!!!!”); //mail命令
扫码领红包微信赞赏
支付宝扫码领红包