Электронные письма, адрес «ответить на» отличается от адреса отправителя

У меня есть contact form на веб-сайте (общая форма: имя, адрес электронной почты, тема, сообщение), в котором сообщения отправляются администраторам с помощью smtp приложений Google.
В настоящее время, если администратор хочет ответить на письмо напрямую, выбрав вариант ответа, поле ответа человека Кому будет заполняться адресом отправителя автоматически.

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

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

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

Я пометил django, хотя это не имеет прямого отношения к этому, так как я, наконец, реализую это через django.


person crodjer    schedule 05.01.2011    source источник


Ответы (4)


На самом деле существуют стандартизированные заголовки для указания заголовков ответов: http://cr.yp.to/immhf/response.html.

Что касается реализации этого в Django, документация содержит пример:

from django.core.mail import EmailMessage

email = EmailMessage(
    'Hello',
    'Body goes here',
    '[email protected]',
    ['[email protected]', '[email protected]'],
    ['[email protected]'],
    headers = {'Reply-To': '[email protected]'}
)

Это решило мою проблему.

person crodjer    schedule 05.01.2011
comment
Обратите внимание, что в Django 1.8 к объекту EmailMessage добавлен новый параметр reply_to. - person mlissner; 25.03.2016

Reply-To — это стандартный заголовок SMTP.

В данный момент я не могу найти для него подходящей ссылки, но он упоминается в статье Википедии по адресу Электронная почта< /а>.

Изменить: найдено: RFC 5322, раздел 3.6.2.

person David Yaw    schedule 05.01.2011
comment
спасибо @david, нашел ответ на спецификации в приложении A.2; Разве это не может быть немного опасно, если спамеры подделывают ответ на адрес электронной почты? - person crodjer; 05.01.2011
comment
Не более чем подделка адреса отправителя, что они уже делают. Но, насколько мне известно, большая часть спама представляет собой рекламу, на которую не следует отвечать, поэтому я не думаю, что адрес «Ответить-Кому» имеет большое значение. - person David Yaw; 05.01.2011

RFC говорит, что вы можете указать несколько адресов электронной почты, и это то, что я искал. Придумал это:

from django.core.mail import EmailMessage
headers = {'Reply-To': '[email protected];[email protected]'}
msg = EmailMessage(subject, html_content, EMAIL_HOST_USER, email_list, headers=headers)
msg.content_subtype = "html"
msg.send()

Работает как шарм. Примечание. EMAIL_HOST_USER импортируется из вашего файла настроек в соответствии с настройкой электронной почты документа Django. Подробнее об этом здесь, найдите «ответить на»: https://docs.djangoproject.com/en/dev/topics/email/

person radtek    schedule 28.02.2014

Вот также, как можно использовать ответ на

from django.core.mail import EmailMessage

email = EmailMessage(
    'Hello',
    'Body goes here',
    '[email protected]',
    ['[email protected]', '[email protected]'],
    ['[email protected]'],
    reply_to=['[email protected]'],
    headers={'Message-ID': 'foo'},
)

Подробнее читайте в документах docs.djangoproject.

person Sardar Faisal    schedule 17.01.2019