php mail函数通过465端口发送邮件

欢迎发布文章/投稿,输入文章内容

由于项目需要,必须支持php使用原生mail函数实现邮件发送;

所以暂时抛弃使用邮件类,linuxmail等解决方案

 

在网上捣鼓半天sendmail,网上的资料翻了遍,都没找到很好的解决方法

由于服务器封禁了25端口,必须要通过465发送邮件

 

最后终于找到了使用postfix的可行方法,这里记录一下问题,方便以后备查,也方便遇到同样问题的小伙伴查阅

隐藏内容

此处内容需要权限查看

  • 普通1金币
  • 永久会员免费推荐

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命令

扫码领红包

微信赞赏支付宝扫码领红包

发表回复

后才能评论