Предоставление имени учетной записи электронной почты при отправке писем с Django через Google Apps - PullRequest
66 голосов
/ 21 января 2010

Я отправляю электронные письма пользователям, использующим Django, через Службы Google.

Когда пользователь получает электронные письма, отправленные из приложения Django, они отправляются:
do_not_reply@domain.com

при просмотрена всех электронных письмах в папке «Входящие» люди видят отправителя электронного письма следующим образом:
do_not_reply или do_not_reply@domain.com в зависимости от используемого почтового клиента

Если я войду в эту учетную запись «do_not_reply» с помощью браузера и GoogleПриложения, а затем отправьте мне по электронной почте, электронные письма от:
Dont Reply<do_not_reply@domain.com>

В результате, имя, отображаемое для отправителя электронной почты в папке входящих сообщений:
Dont Reply

В Django есть ли способ прикрепить "имя" к учетной записи электронной почты, используемой для отправки писем?

Я просмотрел mail.py в Django, но не смог найти решение
http://code.djangoproject.com/browser/django/trunk/django/core/mail.py?rev=5548

Использование:
Django 1.1
Python 2.6
Ubuntu 9.1
settings.EMAIL_HOST = 'smtp.gmail.com'

Спасибо

Ответы [ 3 ]

120 голосов
/ 21 января 2010

На самом деле вы можете использовать "Dont Reply <do_not_reply@domain.com>" в качестве адреса электронной почты, с которого отправляете.

Попробуйте это в оболочке вашего проекта django, чтобы проверить, работает ли он также с gapps:

>>> from django.core.mail import send_mail
>>> send_mail('subject', 'message', 'Dont Reply <do_not_reply@domain.com>', ['youremail@example.com'])
0 голосов
/ 05 июня 2017

Помимо метода send_mail для отправки электронной почты, EmailMultiAlternatives также может использоваться для отправки электронной почты с HTML-контентом с текстовым контентом в качестве альтернативы.

попробуйте это в вашем проекте

from django.core.mail import EmailMultiAlternatives
text_content = "Hello World"
# set html_content  
email = EmailMultiAlternatives('subject', text_content, 'Dont Reply <do_not_replay@domain.com>', ['youremail@example.com'])

email.attach_alternative(html_content, 'text/html')
email.send()

При этом будет отправлено письмо на youremail@example.com с сообщением «Не отвечать», которое будет отображаться как имя вместо адреса электронной почты «do_not_replay@domain.com».

0 голосов
/ 21 января 2010

Я использую этот код для отправки через SMTP Gmail (с помощью приложений Google). и имена отправителя в порядке

def send_mail_gapps(message, user, pwd, to):
    import smtplib
    mailServer = smtplib.SMTP("smtp.gmail.com", 587)
    mailServer.ehlo()
    mailServer.starttls()
    mailServer.ehlo()
    mailServer.login(user, pwd)
    mailServer.sendmail(user, to, message.as_string())
    mailServer.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...