linux(fedora 20)msmtp配置从shell发送但从PHP / apache失败,我很难过......我的目标只是通过我的本地开发网络服务器的gmail smtp发送电子邮件,以测试发送邮件的代码输出
php.ini sendmail 文件读取: sendmail_path = /usr/bin/msmtp --debug -C /etc/msmtprc --read-recipients
系统上只有一个 php.ini,用于 CLI 和位于 /etc/php.ini 的 web 服务器
/etc/msmtprc 的权限设置为 apache:apache 600
以下命令作为 root 工作并生成测试电子邮件:
- php -r "mail('emily@emilytinch.net', '最新测试电子邮件', '测试电子邮件正文');"
- runuser -l apache -c '/usr/bin/msmtp --debug -C /etc/msmtprc --read-recipients < /var/www/html/test.mail' (test.mail 包括往返行)
但是当从以下脚本调用 php 邮件函数时 apache/php 会产生错误:
if (mail('emily@emilytench.net', 'Newest Test Email', 'Test email body'))
print "Email successfully sent";
else
print "An error occured";
错误期间的日志文件如下所示:
- /var/log/httpd/error_log:msmtp:无法连接到 smtp.gmail.com,端口 587:权限被拒绝 msmtp:无法发送邮件(帐户默认来自 /etc/msmtprc)
/etc/msmtprc 包含:
defaults
auth on
tls on
tls_trust_file /etc/pki/tls/cert.pem
account default
host smtp.gmail.com
port 587
user emily@emilytench.net
from emily@emilytench.net
password [******]
auth on
syslog on
欢迎任何指向正确方向的指针...仅尝试实现 localhost php 邮件功能通过我的 gmail smtp 服务器发送电子邮件的简单途径 - 这不是生产服务器配置,它是我的本地 apache/php 网络服务器发展