[英]Sending an e-mail with php
我正在尝试编写一个非常简单的 php 代码,该代码将电子邮件发送到给定地址。
I have this code:
<?php
mail('address@server.com','Test','Test OK');
echo 'Message sent!';
?>
我用自己的电子邮件代替了'address@server.com'
。
我已经使用foundationphp中给出的说明启用了php,因为我正在运行带有雪豹的mac。
php 似乎正在工作,因为我收到了“发送的消息”回声。 但是我没有收到任何电子邮件。
任何想法为什么会发生这种情况? 我究竟做错了什么?
提前致谢!
首先,你根本没有检查mail
的返回值,你会回显“消息已发送”。 即使它返回错误。
if (mail('address@server.com','Test','Test OK')) {
echo 'Message sent!';
}
其次,即使mail
返回 true,也只是表示它已将邮件交给 MTA,而不是邮件已到达目的地。 如果 PHP 成功发送邮件,那么您需要查看邮件日志并在那里进行调试,因为问题不在 PHP 代码/配置中。
如果您在本地计算机上运行此程序,您的电子邮件很可能不会在任何地方发送到 go。 PHP 的mail
function 不知道您是否有正确的外发邮件连接,它只知道邮件是否成功进入本地队列。
重要的是要注意,仅仅因为邮件被接受交付,并不意味着邮件实际上会到达预定目的地。 - http://php.net/mail
对于非服务器机器,最好的选择是设置远程 SMTP 服务器(通常是 ISP 的服务器)。 http://email.about.com/od/emailprogrammingtips/qt/Configure_PHP_to_Use_a_Remote_SMTP_Server_for_Sending_Mail.htm
您收到回显“已发送消息:”因为您没有询问 mail() 是否成功:
if ( mail(...) )
{
echo 'Message sent!';
}
else
{
echo "Fail!";
}
这应该会给你一个正确的反馈。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.