簡體   English   中英

從PHP發送MIME電子郵件時,Exim會覆蓋“發件人”標頭

[英]Exim overwrites “from” header when sending MIME email from PHP

我正在使用PHP Pear Mail_Mime庫發送電子郵件。 在我的腳本中,我在發送消息之前設置了“發件人:”標頭。 在運行Mac OS X的服務器上,這一切都可以正常運行(盡管我不確定100%肯定使用sendmail作為郵件程序。)在發送測試電子郵件時,“發件人:”字段顯示正確的發件人。

但是,如果我在使用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);

?>


您是通過命令行(相對於SMTP)發送的。 Exim僅允許受信任的發件人使用-f選項。 或者:

  • 對其進行更改以使用SMTP(如果您完全可以發送電子郵件,則可以使用所需的任何發件人(通常意味着基於IP或基於身份驗證的控件)
  • 從受信任的用戶(例如root或exim用戶)發送
  • 將發送郵件的用戶添加到exim配置中的受信任用戶列表,如下所示:

    Trusted_Users = root:apache:www:exim:60001

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM