【发布时间】:2011-05-31 09:27:35
【问题描述】:
我正在使用 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);
?>
【问题讨论】:
-
尝试将
Return-path标头明确设置为与回复和/或发件人相同的标头。此外,Mail::send仅支持您提供的前 3 个参数,假设您使用的是 PEAR Mail 类。 -
啊,谢谢——关于 PEAR 邮件类,我没有意识到这一点。