2

我正在使用 PHP Pear Mail_Mime 库发送电子邮件。在我的脚本中,我在发送消息之前设置了“发件人:”标头。这一切在运行 Mac OS X 的服务器上运行良好(它可能使用 sendmail 作为邮件程序,尽管我不是 100% 确定。)发送测试电子邮件时,“发件人:”字段显示正确的发件人。

但是,如果我在使用 Exim4 作为邮件程序的 Linux 服务器上运行相同的脚本,电子邮件仍会发送,但“发件人:”标题显示为默认值,而不是我在脚本中指定的标题。

我已经尝试在 PHP 的邮件功能的“附加参数”中设置“-f [来自电子邮件地址]”选项,但这似乎没有效果。

谁能告诉我如何让 from 标头与 Exim 一起正常工作?

任何意见是极大的赞赏。

干杯,汤姆

编辑:这是代码,以防有人有兴趣查看它。


<?php

  include_once('Mail.php');
  include_once('Mail/mime.php');


  $subject = "mime mail test";
  $from = "wtf@domain.com";
  $to = "wtf@domain.com";
  $visitor_email = $from;

  $message = new Mail_mime();
  $message->setTXTBody("hallo there!");


  $body = $message->get();
  $extraheaders = array("From"=>$from, "Subject"=>$subject,"Reply-To"=>$visitor_email);
  $headers = $message->headers($extraheaders);

  $mail = Mail::factory("mail");
  $result = $mail->send($to, $headers, $body, "", "-f wtf@domain.com -r wtf@domain.com");

  print_r($result);

?>



4

1 回答 1

4

您通过命令行发送(与 SMTP 相比)。Exim 仅允许受信任的发件人使用该-f选项。任何一个:

  • 将其更改为使用 SMTP(这将允许您使用您想要的任何发件人,前提是您完全可以发送电子邮件(这通常意味着基于 IP 或基于身份验证的控制)
  • 从受信任的用户(如 root 或 exim 用户)发送
  • 将发送邮件的用户添加到 exim 配置中的受信任用户列表中,如下所示:

    trust_users = root:apache:www:exim:60001

于 2010-12-28T13:47:39.333 回答