sendmail和php mail() - “找不到收件人”

时间:2013-06-21 14:59:06

标签: php sendmail

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

除了在使用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);

3 个答案:

答案 0 :(得分:3)

$user_email = myemail@gmail.com

应该是

$user_email = "myemail@gmail.com";

答案 1 :(得分:1)

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

$user_email = myemail@gmail.com

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

以下是正确的和正确的表单:

$user_email = "myemail@gmail.com";

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

$user_email = 'myemail@gmail.com';

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

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

答案 2 :(得分:0)

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

mail.force_extra_parameters = -t

据我了解,ssmtp模拟sendmail设置,-t参数强制mta扫描收到的邮件(来自PHP)以获取&#39; To:&#39;报头中。

作为一个注意事项,我还必须更改ssmtp安装创建的符号链接以包含bin的完整路径(ln -s / usr / sbin / ssmtp sendmail),以便找到该文件通过apache