testing本地主机问题的PHP邮件()

嘿家伙,最近我刚刚在Linux安装msmtp,我甚至发送一个邮件从terminal,它的工作:

echo -e "Subject: Test Mail\r\n\r\nThis is a test mail" |msmtp --debug --from=default -t [email protected] 

但在PHP中,编辑php.ini文件后有这样的:

 sendmail_path = '/usr/bin/msmtp -t' 

并使用这段代码:

 <?php if ( mail ( '[email protected]', 'Test mail from localhost', 'Working Fine.' ) ){ echo 'Mail sent'; } else{ echo 'Error. Please check error log.'; } ?> 

我收到了邮件发送的邮件,但没有收到我的收件箱中的邮件。 甚至不在垃圾邮件文件夹中。 有什么错我在做什么?

msmtpconfiguration文件:

 defaults tls on tls_starttls on tls_trust_file /etc/ssl/certs/ca-certificates.crt account default host smtp.gmail.com port 587 auth on user [email protected] password password from [email protected] logfile /var/log/msmtp.log 

我遇到了同样的问题。 你的脚本说一半的解决scheme..检查你的apache错误日志,而不是msmtp的,如果他们甚至存在.. :)我的日志文件说:

 "msmtp: /etc/msmtprc: must be owned by you" 

实际上这是正确的,/ etc / msmtp中的我的msmtpconfiguration文件不属于http。

我的php.ini文件是这样的:

 sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc -t" 

希望这可以帮助。

返回值

如果邮件已成功接收,则返回TRUE,否则返回FALSE。

重要的是要注意,仅仅因为邮件被接受交付,并不意味着邮件实际上会到达预期的目的地。

所以,基本上这意味着邮件被转发到邮件传输工具,你的情况是/usr/bin/msmtp 。 你的代码可能没有问题。 我会说适当的地方看是/var/log/mail.err或其他邮件相关的日志。