繁体   English   中英

使用 php 发送电子邮件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM