2010-01-21 21 views
56

Estoy enviando correos electrónicos a los usuarios que usan Django a través de Google Apps.Dando un nombre a la cuenta de correo electrónico al enviar correos electrónicos con Django a través de Google Apps

Cuando el usuario recibe mensajes de correo electrónico enviados desde la aplicación de Django, que son de:
[email protected]

cuando se mira en todos los mensajes de correo electrónico en la bandeja de entrada, la gente ve el remitente del correo electrónico como:
do_not_reply o [email protected] dependiendo de la cliente de correo electrónico utilizado

Si puedo acceder a esa cuenta "do_not_reply" usando el navegador y el propio Google Apps y luego enviar un correo electrónico a mí mismo, los mensajes de correo electrónico son de:
Dont Reply<[email protected]>

Como resultado, el nombre que se muestra para el remitente del correo electrónico en la bandeja de entrada es:
Dont Reply

En Django, ¿hay una manera de unir un "nombre" a la cuenta de correo electrónico que se utiliza para enviar mensajes de correo electrónico?

He revisado mail.py de Django, pero no tuvo suerte para encontrar una solución
http://code.djangoproject.com/browser/django/trunk/django/core/mail.py?rev=5548

Usando:
Django 1.1
Python 2.6
Ubuntu 9.1
settings.EMAIL_HOST = 'smtp.gmail .com'

Gracias

Respuesta

99

En realidad se puede utilizar "Dont Reply <[email protected]>" como la dirección de correo electrónico que envía desde.

Prueba esto en la concha de su proyecto Django para probar si también trabaja con gapps:

>>> from django.core.mail import send_mail 
>>> send_mail('subject', 'message', 'Dont Reply <[email protected]>', ['[email protected]']) 
+0

¡Gracias por publicar! Ojalá hubiera visto esto ayer b/c me habría ahorrado algo de tiempo. Estaba leyendo la documentación en y finalmente leí el "from_email" más de cerca y encontré la misma respuesta que usted. Estaba viniendo aquí para publicar una respuesta cuando vi la tuya. De todos modos, gracias de nuevo!Me alegro de tener finalmente este trabajo – rfadams

+3

También puedes establecer DEFAULT_FROM_EMAIL en settings.py como este: 'DEFAULT_FROM_EMAIL = 'No responder <[email protected]>' ' –

+0

Solo asegúrate de que no configures el mismo correo electrónico con el nombre auth_user, porque fallará durante la autenticación – iamkhush

-3

utilizo este código para enviar a través de smtp de gmail (usando aplicaciones de google). y nombres de remitentes están bien

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() 
+0

Este es en realidad el mismo código que las clases de EmailMessage de Django usan en segundo plano. A pesar de eso, probé tu método y el correo electrónico todavía tiene 'do_not_reply' como nombre del remitente. Gracias por intentar aunque – rfadams

+1

y qué hay de settings.DEFAULT_EMAIL_FROM? – jujule

0

Además del método send_mail para enviar correo electrónico, EmailMultiAlternatives también se pueden utilizar para enviar correo electrónico con contenido HTML con contenido de texto como una alternativa.

probar esto en su proyecto

from django.core.mail import EmailMultiAlternatives 
text_content = "Hello World" 
# set html_content 
email = EmailMultiAlternatives('subject', text_content, 'Dont Reply <[email protected]>', ['[email protected]']) 

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

Esto envía un mensaje a [email protected] con Dont Responder Wil ser dispalyed como nombre en lugar del correo electrónico '[email protected]'.

Cuestiones relacionadas