2015-11-02 7 views
0

Я работаю над сервером списка, и я использую функцию mail() PHP. Я пытаюсь выяснить, как получатель видит несколько адресов в поле Кому: без отправки PHP на эти адреса. Например:PHP mail() - показывает больше адресов в поле «Кому», чем на самом деле отправлено

  • список рассылки «[email protected]» должен направить в «[email protected]» и «[email protected]»

  • отправляется сообщение электронной почты от физического лица к «[email protected]» и «[email protected]»

  • сервер список получает электронное письмо «[email protected]», и хочет, чтобы направить его соответствующим

  • , когда Джон и Мэри получает отправленное письмо в своих почтовых ящиках, «Кому:» поле должно показать, что он был отправлен в «[email protected]» и «[email protected]»

Так что мой вопрос, как я могу получить Спецрассылки PHP на самом деле отправить электронное письмо ТОЛЬКО «[email protected]» и «[email protected]», но НЕ «[email protected]», при этом показывая «[email protected]» в поле «Кому:» в письме что получают Джон и Мэри?

Есть ли какой-то заголовок, который я могу установить, который отобразит адрес в поле «Кому:», но не отправит его на этот адрес?

EDIT: существующий код будет выглядеть примерно так:

$to = "To: [email protected], [email protected]"; 
$from = "From: [email protected]"; 
$new_headers = $to."\r\n".$from."\r\n"."Bcc: [email protected], [email protected]"."\r\n"; 

mail("","Subject Here","message here", $new_headers); 

Это работает и направляет его к Джону и Мэри надлежащим образом, но «[email protected]» получит две копии электронной почты (один из первоначальный отправитель и один из пересылаемой копии).

+0

Дорогой Иордан, какой приятный, свежий и, надеюсь, удивительный код у вас есть до сих пор? В противном случае это как-то трястись в темноте ... – Jan

+0

@Jan добавил код, который я работал с – Jordan

ответ

0

Насколько я знаю, нет никакого способа не отправить сообщение кому-то указанному в качестве получателя, если вы не используете что-то вроде Postfix.

Однако вы должны быть в состоянии сделать что-то вроде изменить файл /etc/mail/address.resolve, или если это не работает, или не существует, другой вариант может быть, чтобы изменить фактический /etc/hosts файл так, что он думает, что example.org указывает на то же самое IP-адрес в качестве localhost:

::1  ip6-localhost ip6-loopback 
fe00::0 ip6-localnet 
ff00::0 ip6-mcastprefix 
ff02::1 ip6-allnodes 
ff02::2 ip6-allrouters 
127.0.0.1 localhost example.org 
+0

. Как бы это сделать, если бы я хотел отправить его на имя «[email protected]» и иметь «name2 @ example.com "отображаются в поле« Кому: », не получая его?Если я отредактирую файл разрешения, чтобы связать этот домен с неправильным адресом, тогда даже тот, кто ДОЛЖЕН получить его, не будет. – Jordan

0

я понял, решение. Вместо использования функции mail() PHP я использовал функцию exec() для вызова sendmail из командной строки. С помощью sendmail вы можете указать разные заголовки: и envelope-to:. Таким образом, код будет выглядеть примерно так:

$message = "To: [email protected], [email protected]\r\nFrom: [email protected]\r\nSubject: subject line\r\n\r\n message content here"; 

exec("/usr/bin/sendmail [email protected] [email protected] <<< ".escapeshellarg($message)); 

Тогда это на самом деле только доставляется к «[email protected]» и «[email protected]», но им, похоже, он был отправлен в " [email protected] "и" [email protected] ".

 Смежные вопросы

  • Нет связанных вопросов^_^