Законные причины SMTP «MAIL FROM:» не будет совпадать с заголовком «From:» в DATA

18

Существует ли когда-либо законная причина для поля SMTP «MAIL FROM:» не совпадать с полем «From:» в разделе DATA сообщения, кроме списков рассылки?

С /programming/1750194/smtp-why-does-email-needs-envelope-and-what-does-the-envelope-mean :

«Но, чтобы продолжить метафору обычной почты, большинство профессиональных писем будут содержать адреса отправителя и получателя, напечатанные на самом письме. Эти адреса не являются необходимыми для почтальона, но вместо этого являются любезностью получателю. Поэтому разумно, что электронная почта будет работать так же ».

Проблема с этой линией логики лежит здесь: «вежливость к получателю». Включение адреса «От:» в электронное письмо через SMTP не является любезностью; это необходимо, если получатель сможет отправить ответ.

From: Как ограничить заголовок From совпадением MAIL FROM в postfix? :

«Но если вы действительно хотите обеспечить From: и MAIL FROM, тогда вы должны применить header_checks, чтобы Return-Path: соответствовал From:»

Каковы последствия этого? Списки рассылки, очевидно, будут проблемой. Существуют ли другие законные варианты использования различий между заголовками «MAIL FROM:» и «From:»?

dkovacevic
источник

Ответы:

22

Существует множество причин, по которым адреса заголовка и конверта могут не совпадать. В большинстве случаев речь идет об автоматизированных процессах отправки почты, когда о проблемах доставки необходимо сообщать по адресу, который не является представителем того, кто отправил почту, кому было отправлено от имени или на кого следует ответить. Списки рассылки, как вы указали, являются хорошим примером.

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

Помимо заголовка SMTP, существует множество заголовков MIME, которые различные программы используют для разграничения между исходным отправителем и промежуточным отправителем и / или предпочитаемым адресом для сообщения об ошибках. Например, Reply-To, Sender, Originally-From , Ошибки-К и т. Д. И т. Д., Каждый с различной семантикой. Некоторые из них имеют поддержку стандартов, в то время как многие другие не поддерживают, но могут использоваться в любом случае. Поведение различных почтовых программ на практике значительно различается.

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

Подумайте о подписи электронной почты DKIM и SPF-аутентификации почтовых серверов для почтовых доменов. Если вы отправляете много почты, может быть важно иметь возможность аутентифицировать вашу почту этими способами, и это может иметь последствия для адресации почты из заголовков, поскольку вы можете аутентифицировать только почту, относящуюся к доменам, на которые у вас есть полномочия. ,

-

Продлен по запросу:

Заголовок MIME «Reply-To» направляет MUA (почтовый пользовательский агент, обычно почтовый клиент) на отправку ответов на другой адрес вместо адреса MIME «From». Это не используется MTA (Mail Transport Agent) для таких вещей, как ошибки.

Обычно MTA использует адрес «MAIL From» для конверта SMTP для отправки ошибок. Это можно переопределить с помощью заголовка MIME «Errors-To», который является инструкцией MTA. Не все адаптеры MTA соблюдают его, поэтому это плохой механизм для установки адреса конверта SMTP, но существует множество обстоятельств, при которых возможно установить заголовки MIME в сообщении, но не адрес конверта SMTP из. Например, программное обеспечение, работающее в среде общего хостинга, может оказаться в такой ситуации.

«Отправитель» гораздо более неоднозначен в качестве инструкции для программных агентов, но указывает, кто или что отправил электронное письмо, если оно отличается от адреса «От», что больше похоже на то, кому письмо было отправлено от имени. Например, когда вы заполняете онлайн-форму mail-your-politician, было бы очень уместно, чтобы полученное письмо использовало вашу почту в заголовке From, но имело бы адрес отправителя, связанный с организацией, которая настроила форму.

«Изначально-От» используется некоторыми программами MUA при пересылке почты, а адрес пересылки используется для заголовка «От». Другие MUA оставят адрес отправителя в покое и будут использовать заголовок «Resent-From». Независимо от того, будут ли MUA, получающие эти различные электронные письма заголовков, толковать заголовки с пользой, или даже отображать их, весьма различно. Отвечая на письмо, которое было отправлено вам, на кого должен идти ответ по умолчанию? Может быть, лучше установить этот заголовок «Ответить»?

Поведение MUA является переменным и плохо определенным, хотя, похоже, со временем оно улучшается. В отличие от этого, семантика огибающей гораздо более определена. Как правило, существовала сильная позиция, что MTA никогда не должны интересоваться заголовками MIME, но, поскольку MTA все больше и больше несут ответственность за содержимое почты (например, см. SPF и новые стандарты DMARC), существует необходимость снижения четкости этой позиции. Давние механизмы, такие как Errors-To, также вступали в конфликт с понятием MTA, не обращающим внимания на содержимое заголовка, что является частью того, почему эти механизмы всегда применялись непоследовательно. Философии авторов программного обеспечения различны.

Возможно, вам будет полезно просмотреть http://tools.ietf.org/html/rfc4021#section-2 , но помните, что фактическая практика использования множества почтовых программ различается способами, которые необязательно соответствуют стандартам.

Хорошо попытаться выработать четкую философию того, как, по вашему мнению, должна использоваться почта, но не ожидайте, что все остальные будут делать то, что, как вы думаете, они должны.

mc0e
источник
У меня все еще есть время, чтобы присудить эту награду, и меня интересуют дополнительные сценарии, в которых может потребоваться использование заголовков: «Ответить-Отправителю, Первоначально-От, Ошибки-Кому»
goodguys_activate
Спасибо за дополнения. Я надеюсь получить четкое представление о том, каковы ожидаемые варианты поведения MTA по сравнению с тем, как они реализованы. Кроме того, вас может заинтересовать этот вопрос: я только что разместил на Sec.StackExchange информацию о белых списках адресов электронной почты (сродни BATV) security.stackexchange.com/q/41008/396
goodguys_activate
1
+1, почему только 4 голоса?
Pacerier
11

Автоматическая обработка является большой причиной. Вы хотите иметь возможность отправлять любые сообщения об отказах / автоответчиках / ошибках, которые будут обрабатываться отдельно, в противном случае эти сообщения исчезают или игнорируются, или какой-то плохой сок должен их пролистать. Да, добавление X-заголовка для обработки возможно, но большая часть времени отскакивает / etc. не будет содержать исходное письмо или только его искаженную часть, и вы не сможете получить источник.

Например, скажите, что кто-то регистрируется на вашем сайте, и вы отправляете им электронное письмо с благодарностью за регистрацию. Ваш MAILFROM и From может выглядеть так:

MAIL FROM: <user-signup-123123123@bounces.example.com>
From: Website X <noreply@example.com>

Таким образом, пользователь видит «дружественный от» в почтовом клиенте. Но если пользователь не существует, его MTA отправит сообщение о сбое:

user-signup-123123123@bounces.example.com

и автоматизированный процесс может легко извлечь идентификатор пользователя (часть 123123123) и часть системы, которая создала отскок (часть -signup-) из заголовка, и легко удалить / пометить этого пользователя как отключенного.

боб
источник
8

Письмо от: в диалоге smtp предназначено для того, чтобы отправлять сообщения о доставке. Заголовок От: в теле сообщения используется для отображения получателю и в качестве адреса ответа, если заголовок Reply-to: не установлен.

Электронные письма, которые не должны вызывать отказов, должны указывать пустого отправителя в конверте, например, квитанция о возврате обычно будет иметь: mail from:<>с именем пользователя в заголовке from :.

Другая ситуация, когда почтовый сервер использует BATV для отклонения поддельных отскоков. Письмо от: будет в форме prvs=tag-value=mailbox@example.com.

Ричард Солтс
источник
Я думаю, что помню X-заголовок для возвратов и отчетов о недоставке. Вы знаете, когда и как это используется?
goodguys_activate
X-заголовки были изначально добавлены в качестве средств MUA и / или MTA для размещения пользовательских метаданных и не указываются ни в каких стандартах, хотя некоторые из них становятся стандартами де-факто. Вы можете подумать о типе mime multipart / report, определенном в rfc 6522, который был определен, чтобы помочь программному обеспечению классифицировать сообщения, которые автоматически возвращаются. Они все еще будут отправлены с пустым конвертом по почте от:
Ричарда Солтса
1

Если я неправильно читаю свои заголовки или вопрос, электронные письма с моего BlackBerry отправляются с сервера BlackBerry, и в основном ни одно из полей не совпадает. Небольшой процент пользователей, я понимаю. Я недавно смотрел на это при оценке моего почтового сервера. Ниже приведено анонимное письмо, отправленное с моего BlackBerry на мою учетную запись Gmail:

Delivered-To: recipientusername@gmail.com
Received: by 10.50.11.138 with SMTP id q10csp217364igb;
        Wed, 14 Aug 2013 00:18:53 -0700 (PDT)
X-Received: by 10.42.83.84 with SMTP id g20mr4290552icl.10.1376464731205;
        Wed, 14 Aug 2013 00:18:51 -0700 (PDT)
Return-Path: <SRS0=BQ46+U=R3=example.com=senderusername@srs.bis6.us.blackberry.com>
Received: from smtp08.bis6.us.blackberry.com (smtp08.bis6.us.blackberry.com. [74.82.85.8])
        by mx.google.com with ESMTP id lq6si7427361icb.102.2013.08.14.00.18.51
        for <recipientusername@gmail.com>;
        Wed, 14 Aug 2013 00:18:51 -0700 (PDT)
Received-SPF: pass (google.com: domain of SRS0=BQ46+U=R3=example.com=senderusername@srs.bis6.us.blackberry.com designates 74.82.85.8 as permitted sender) client-ip=74.82.85.8;
Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of SRS0=BQ46+U=R3=example.com=senderusername@srs.bis6.us.blackberry.com designates 74.82.85.8 as permitted sender) smtp.mail=SRS0=BQ46+U=R3=example.com=senderusername@srs.bis6.us.blackberry.com
Received: from b15.c8.bise6.blackberry ([192.168.0.115])
    by srs.bis6.us.blackberry.com (8.13.7 TEAMON/8.13.7) with ESMTP id r7E7InfH019786
    for <recipientusername@gmail.com>; Wed, 14 Aug 2013 07:18:49 GMT
Received: from 172.29.201.172 (cmp2.c8.bise6.blackberry [172.29.201.172])
    by b15.c8.bise6.blackberry (8.13.7 TEAMON/8.13.7) with ESMTP id r7E7IlCt013236
    for <recipientusername@gmail.com>; Wed, 14 Aug 2013 07:18:47 GMT
X-rim-org-msg-ref-id: 587275596
Message-ID: <587275596-1376464726-cardhu_decombobulator_blackberry.rim.net-631052459-@b17.c8.bise6.blackberry>
Reply-To: senderusername@example.com
X-Priority: Normal
Sensitivity: Normal
Importance: Normal
Subject: Test
To: "Recipient Name" <recipientusername@gmail.com>
From: senderusername@example.com
Date: Wed, 14 Aug 2013 07:18:45 +0000
Content-Type: text/plain
MIME-Version: 1.0

Test
Sent via BlackBerry by AT&T
Павел
источник
Для этого есть отличная причина - переписывание SPF . Если бы BlackBerry не делал этого, вы бы получили гораздо больше сбоев SPF, отправленных с вашего устройства.
MikeyB
Правда, но это потому, что BlackBerry не использует мой сервер для отправки.
Пол