Google Apps를 통해 Django로 이메일을 보낼 때 이메일 계정에 이름 지정


84

Google Apps를 통해 Django를 사용하는 사용자에게 이메일을 보내고 있습니다.

사용자가 Django 앱에서 보낸 이메일을 수신하면 다음에서 발송됩니다.
do_not_reply@domain.com

받은 편지함의 모든 이메일을 볼 때 사람들은 이메일의 발신자를 다음
do_not_reply과 같이 봅니다. 또는 do_not_reply@domain.com사용 된 이메일 클라이언트에 따라

브라우저와 Google Apps 자체를 사용하여 "do_not_reply"계정에 로그인 한 다음 나에게 이메일을 보내면 이메일은 다음과 같습니다.
Dont Reply<do_not_reply@domain.com>

결과적으로받은 편지함에 이메일 발신자에 대해 표시되는 이름은 다음과 같습니다.
Dont Reply

Django에서 이메일을 보내는 데 사용되는 이메일 계정에 "이름"을 첨부하는 방법이 있습니까?

Django의 mail.py를 검토했지만 해결책을 찾지 못했습니다
. 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'

감사

답변:


142

실제로 "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'])

1
게시 해 주셔서 감사합니다! 내가 어제 이것을 봤으면 좋았을 텐데 b / c 시간이 좀 절약되었을 것입니다. 방금 < docs.djangoproject.com/en/dev/topics/email/… > 에서 문서를 읽고 있었고 마침내 "from_email"을 더 자세히 읽고 당신과 같은 답을 찾았습니다. 내가 당신의 답변을봤을 때 답변을 게시하기 위해 여기에 왔습니다. 어쨌든 다시 한 번 감사드립니다! 마지막으로이 작업을 다행
rfadams

10
당신은 또한이 같은 settings.py에 DEFAULT_FROM_EMAIL을 설정할 수 있습니다 : DEFAULT_FROM_EMAIL = 'Dont Reply <do_not_reply@domain.com>'
마크 Tudurí

그냥 실패합니다 때문에, auth_user와 같은 이름으로 같은 이메일을 설정 해달라고, 확인하는 동안 인증
iamkhush

@iamkhush - 당신은 무엇을 의미합니까 setting the same email with name as aut_user. 인증 오류가 발생합니다. 이유를 이해할 수 없습니까?
PythonEnthusiast

0

이메일을 보내는 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'이메일 대신 이름으로 표시됩니다.


-5

이 코드를 사용하여 Gmail smtp (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()

이것은 실제로 Django의 EmailMessage 클래스가 백그라운드에서 사용하는 것과 동일한 코드입니다. 어쨌든, 나는 당신의 방법을 시도했고 이메일은 여전히 do_not_reply보낸 사람의 이름으로 남아 있습니다 . 그래도 시도해 주셔서 감사합니다
rfadams

3
그리고 settings.DEFAULT_EMAIL_FROM은 어떻습니까?
jujule
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.