Электронная почта, другой адрес "ответ" на адрес отправителя
У меня есть contact form
на веб-сайте (общая форма: имя, адрес электронной почты, тема, сообщение), в котором письма отправляются с помощью smtp-приложений Google для администраторов.
В настоящее время, если администратор хочет ответить на почту напрямую, выбрав параметр ответа, поле "Ответ на ответ" будет автоматически заполнено адресом отправителя.
Я не хочу спрашивать, Есть ли какой-либо стандартизованный способ передать некоторую дополнительную информацию с почтой, которая будет определять любой ответ на почту, должен идти по этому адресу вместо отправителя?
Кажется, что есть небольшой шанс для этого варианта, так как это может привести к некоторым проблемам из-за спамеров (они могут определять настраиваемое поле ответа в своей почте, а обычный пользователь может не посмотреть, где они отвечают).
Итак, в качестве альтернативы я решил найти способ создания фильтра с учетной записью отправителя, который определяет адрес электронной почты ответа из формата и пересылает почту (не кажется хорошим решением, и я понятия не имею как это достичь).
Я пометил django, хотя это напрямую не связано с этим, так как я, наконец, реализую это через django.
Ответы
Ответ 1
На самом деле существуют стандартные заголовки для указания заголовков ответов: 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]'}
)
Это решило мою проблему.
Ответ 2
Reply-To - стандартный SMTP-заголовок.
В настоящий момент я не могу найти хорошую ссылку для него, но упоминается в статье Википедии о Email.
Изменить: Найден: RFC 5322, раздел 3.6.2
Ответ 3
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 doc. Подробнее об этом здесь, найдите "ответ на": https://docs.djangoproject.com/en/dev/topics/email/
Ответ 4
Вот также, как можно использовать функцию reply-to
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 docs.djangoproject