从 PHP 发送 MIME 电子邮件时,Exim 会覆盖“发件人”标头
Posted
技术标签:
【中文标题】从 PHP 发送 MIME 电子邮件时,Exim 会覆盖“发件人”标头【英文标题】:Exim overwrites "from" header when sending MIME email from PHP 【发布时间】: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 邮件类,我没有意识到这一点。
原来这是***.com/questions/4663040/…的副本
【参考方案1】:
您通过命令行发送(与 SMTP 相比)。 Exim 只允许受信任的发件人使用-f
选项。要么:
将发送邮件的用户添加到 exim 配置中的受信任用户列表中,如下所示:
trusted_users = root:apache:www:exim:60001
【讨论】:
我尝试了trusted_users 方法以及切换到SMTP,但问题仍然存在。我想我可能已经发现了这个问题,即 exim 被配置为通过 GMail 发送电子邮件,并且显然设置为作为一个用户发送所有电子邮件。但是,我仍然不确定需要更改什么来解决问题。不过,非常感谢您提供的信息。 请看***.com/questions/4663040/…以上是关于从 PHP 发送 MIME 电子邮件时,Exim 会覆盖“发件人”标头的主要内容,如果未能解决你的问题,请参考以下文章