Google Appsを介してDjangoでメールを送信するときに、メールアカウントに名前を付ける


84

GoogleAppsを介してDjangoを使用しているユーザーにメールを送信しています。

ユーザーがDjangoアプリから送信されたメールを受信すると、次のユーザーから送信されます。
do_not_reply@domain.com

受信トレイ内のすべての電子メールを見ると、人々は電子メールの送信者を:
do_not_replyまたはdo_not_reply@domain.com使用されている電子メールクライアントに応じて次のように表示します。

ブラウザとGoogleApps自体を使用してその「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'

ありがとう

回答:


145

実際に"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」を詳しく読んで、あなたと同じ答えを見つけました。私があなたの答えを見たとき、ちょうどここに答えを投稿するために来ていました。とにかく、ありがとう!ついにこれが機能することを
うれしく思います

10
次のように、settings.pyでDEFAULT_FROM_EMAILを設定することもできます。 DEFAULT_FROM_EMAIL = 'Dont Reply <do_not_reply@domain.com>'
MarcTudurí 2015

認証中に失敗するため、auth_userと同じ名前の電子メールを設定しないでください
iamkhush 2017年

@ 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アプリを使用)。送信者名はOKです

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 2010年

3
そしてsettings.DEFAULT_EMAIL_FROMはどうですか?
jujule
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.