您的位置:首页 > 编程语言 > PHP开发

利用postfix让PHP的mail函数生效

2015-09-13 00:00 591 查看
摘要: 有时我们需要发送邮件通知些重要的事情,PHP的mail函数系统自带,但是需要配置之后才能生效

以ubuntu为例

修改php.ini,如果是php-fpm,需要修改2个php.ini文件

sendmail_from = "123@123.com" //发送邮件的邮箱,一定要和from对应
sendmail_path = "sendmail -t -i -f 123@123.com"

安装或者重新配置postfix

sudo apt-get install postfix
//如果已经安装,重新配置
//sudo dpkg-reconfigure postfix

一路用默认吧,第一个可以用发邮件用的域名,后面尽量为空,或者用默认值,我在这个地方卡住好久

添加发邮件用的服务器地址以及发邮件的账户密码

sudo vim /etc/postfix/sasl_passwd
[smtp.123.com]     123@123.com:密码

保存后

sudo postmap /etc/postfix/sasl_passwd
sudo postfix reload

编辑/etc/postfix/main.cf,添加

relayhost = [smtp.123.com] //这个地方要和前面一样
# enable SASL authentication
smtpd_sasl_auth_enable = yes
smtp_sasl_auth_enable = yes
# disallow methods that allow anonymous authentication.
smtp_sasl_security_options = noanonymous
# where to find sasl_passwd
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

新建php文件进行测试

mail('123@123.com', 'My Subject', 'fuck'); //发给自己

看是否收到邮件,如果遇到问题,看/var/log/mail.log文件,重点是to收件人是否正确,relay是否是[smtp.123.com],from发送者是否正确
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: