Определение, куда сообщение было переслано - PullRequest
0 голосов
/ 12 декабря 2011

Это один из тех, которые трудно объяснить вопросы. Я старался изо всех сил ниже, надеюсь, понятно, что я имею в виду.

Письма поступают на адрес (foo@example.com) и пересылаются на другой адрес электронной почты (bar@subdomain.example.com). Второй адрес электронной почты далее направляет письмо к простому сценарию, но сценарий должен на самом деле знать второй адрес электронной почты, поскольку он предоставляет метаданные, которые имеют решающее значение для сортировки сообщения (то есть сценарий передается по любой электронной почте, отправляемой * @ subdomain.example.com, и он должен видеть, что он был перенаправлен на bar@subdomain.example.com для правильной обработки входящего сообщения).

Первоначально я думал, что виртуальный псевдоним, используемый для пересылки сообщений с foo@example.com на bar@subdomain.example.com, обновит заголовок envelope-to, но оно остается неизменным. Ни один из других заголовков, ни строка «полученный» не отражают, что сообщение было переслано. Моя теория состоит в том, что, возможно, инструкции канала для *@subdomain.example.com могут быть обновлены, чтобы каким-то образом передать фактический адрес скрипту, но я не уверен, как.

Для справки, я включил несколько примеров ниже:

Заголовки, после пересылки:

From sender@example.com Sun Dec 11 19:53:40 2011
Envelope-to: foo@example.com
Received: ...
Subject: Test 6

Файл valias для subdomain.example.com (/etc/valiases/subdomain.example.com):

*: "|/home/user/example_script.x.php"

1 Ответ

0 голосов
/ 13 декабря 2011

И я ответил на свой вопрос. Оказывается, получатель доступен в переменной окружения. В моем случае, поскольку я использую PHP, я могу просто использовать следующую переменную:

$_ENV['RECIPIENT']
...