0

我已经安装sendmail在我的 Apache 服务器(Ubuntu)上

除了在使用 php 时没有发送电子邮件外,一切似乎都可以找到mail();

我在 Apache 错误日志中收到一条错误消息:

/usr/sbin/sendmail: 找不到收件人

这是我使用该功能的方式:

$user_email = "myemail@gmail.com";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: ' . $user_email . "\r\n";
$headers .= 'From: Mydomain <do-not-reply@mydomain.com>' . "\r\n";

  mail($user_email,"subject","message",$headers);
4

3 回答 3

3

$user_email = myemail@gmail.com

应该

$user_email = "myemail@gmail.com";

于 2013-06-21T15:01:41.860 回答
1

导致错误的原因是您(在原始发布的代码中):

$user_email = myemail@gmail.com

包含引号和结束分号都不存在。

这是正确和适当的形式:

$user_email = "myemail@gmail.com";

也可以这样写,使用单引号:

$user_email = 'myemail@gmail.com';

取自mail()PHP.net 上的函数

http://php.net/manual/en/function.mail.php

于 2013-06-21T15:04:28.563 回答
1

我在我的 ubuntu/apache2/php 设置上安装了 ssmtp,我发现我必须在 php.ini 中设置 sendmail 参数

mail.force_extra_parameters = -t

据我了解,ssmtp 模拟发送邮件设置,-t 参数强制 mta 扫描传入邮件(来自 PHP)以查找“收件人:”标头。

需要注意的是,我还必须更改 ssmtp 安装创建的符号链接以包含 bin 的完整路径(ln -s /usr/sbin/ssmtp sendmail),以便 apache 可以找到该文件

于 2016-04-06T16:33:03.400 回答