发送邮件返回错误代码 8


sendmail returned error code 8

简单的PHP脚本运行在BlueHost上,邮件由Google Apps处理:

<?php
  require_once('Mail.php');
  $subject = 'Test Subject';
  $message = 'Test Message';
  $to = 'to@example.com'; // address on this domain
  $from = 'from@example.com'; // another address on the domain
  $fromname = 'John Doe';
  $headers = array(
    'Return-Path' => $from,
    'From' => $from,
    'X-Priority' => '3',
    'X-Mailer' => 'PHP ' . phpversion(),
    'Reply-To' =>  "$fromname <$from>",
    'MIME-Version' => '1.0',
    'Content-Transfer-Encoding' => '8bit',
    'Content-Type' => 'text/plain; charset=UTF-8',
    'To' => $to,
    'Subject' => $subject
  );
  $params = '-i -v -f ' . $from;
  $sendmail = Mail::factory('sendmail', $params);
  $mail = $sendmail->send($to, $headers, $message);
  if (PEAR::isError($mail)) { $status = $mail->getMessage(); }
?>

$status被设置为sendmail returned error code 8

看起来我需要做两件事:

  1. BlueHost 检查From:地址是否在 cPanel 中 - 即使 Google Apps 处理邮件也是如此。显然cPanel更新了sendmail的受信任用户列表。

  2. 如果To:地址在同一主机上,它也必须存在于cPanel中,尽管我不确定为什么(sendmail优化?