Exim перезаписывает заголовок "from" при отправке электронной почты MIME из PHP - PullRequest
2 голосов
/ 28 декабря 2010

Я использую библиотеку PHP Pear Mail_Mime для отправки электронной почты.В моем сценарии я установил заголовок «From:» перед отправкой сообщения.Все это прекрасно работает на сервере под управлением Mac OS X (который предположительно использует sendmail в качестве почтовой программы, хотя я не уверен на 100%). При отправке тестового электронного письма в поле «От:» отображается правильный отправитель.

Однако, если я запускаю тот же сценарий на сервере Linux с Exim4 в качестве почтовой программы, электронное письмо все равно отправляется, но заголовок «От:» отображается по умолчанию вместо того, который я указал в сценарии.

Я пытался установить параметр «-f [с адреса электронной почты]» в «дополнительных параметрах» для почтовой функции PHP, но, похоже, это не имеет никакого эффекта.

Может кто-нибудь сказать мнекак я могу получить заголовок из для правильной работы с 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);

?>



1 Ответ

4 голосов
/ 28 декабря 2010

Вы отправляете через командную строку (против SMTP).Exim позволяет только доверенным отправителям использовать опцию -f.Либо:

  • Измените его на использование SMTP (что позволит вам использовать любого отправителя, которого вы хотите, при условии, что вам разрешено отправлять электронную почту вообще (что обычно означает элементы управления на основе IP или аутентификации)
  • Отправка от доверенного пользователя (такого как пользователь root или пользователь exim)
  • Добавление пользователя, отправляющего почту, в список доверенных пользователей в конфигурации exim, который будет выглядеть примерно так:это:

    rust_users = root: apache: www: exim: 60001

...