为 php 电子邮件配置 sendmail()

为 php 电子邮件配置 sendmail()

最近我在Ubuntu中安装了sendmail

sudo apt install sendmail
sudo sendmailconfig

当我尝试使用 phpemail();函数发送邮件时

$to = "[email protected]";
$subject = "Mail Test at ".strftime("%T", time());
$message = "This is a test.";
$message = wordwrap($message, 70);
$from = "[email protected]";
$headers = "From: {$from}";
$result = mail($to, $subject, $message, $headers);
echo $result ? "sent" : "error";

现在,当我浏览 php 网站时,我会收到消息,但没有收到电子邮件(在我的官方电子邮件中)。有人可以帮忙吗?

答案1

您可能需要将主机名添加到/etc/hosts(找到带有127.0.0.1并附加您的主机名的行):

127.0.0.1 localhost localhost.localdomain your_hostname_here

尝试重新启动apache

$> sudo service apache2 restart

请记住:

  1. mailtrue如果成功将邮件传输到配置的 MTA,则返回成功 ( )。这并不意味着您的 MTA 实际上发送了任何邮件。
  2. 现代邮件服务器可能不接受您的电子邮件,因为垃圾邮件过滤器(DNS 查找、发件人验证等)可能处于活动状态并阻止发送。

您可以sendmail随时使用以下命令检查邮件队列

$> mailq

相关内容