2011-12-09 9 views
1

現在、私はgmailのsmtpとDjango send_mailを使用しています。django send_mailを使用する方法はありますか?送信者はDjangoモデルの特定のフィールドに基づいていますか?

EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 587 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'samplepass' 
EMAIL_USE_TLS = True 

私はDjangoの者を使用するたびにメールを送信、送信者は、常に(この場合は、[email protected])EMAIL_HOST_USERに基づいています。

私は、送信者を変更して、sample_gmail.comを使用しないようにします。代わりに、Business_Profileモデルのcontact_email_addressフィールドからの電子メールを使用します。

#models.py 
class Business_Profile(models.Model): 
    ... 
    contact_email_address = models.EmailField() 
    ... 

これが起こる方法はありますか?私は、Business_Profileクラスにemail_address_passwordフィールドを追加したくありません。

可能でない場合は、メールサーバーを使用するなどの提案があります。私は、nginx上で稼動しているプロダクションサーバーを持っており、私はpostfixについて聞いたことがあります。私は後置式を使って何をしたいのですか?あるいは、postfixの代わりにメールサーバーを使いやすくて使いやすいものがありますか?

読んでいただきありがとうございます。これは初めての質問です。

+0

[Djangoの電子メール(Gmail経由で送信)のアドレスを上書きする方法](http://stackoverflow.com/questions/8418905/how-to-override-the-from-address-in-django) -email-sent-through-gmail) –

+0

この問題の変更はありますか?私は同じ問題があります:( –

答えて

0

あなたはsend_mail()にパラメータとして送信者アドレス与えることができます:

from django.core.mail import send_mail 

profile = BusinessProfile.objects.get(pk=1) 

send_mail('Subject here', 'Here is the message.', profile.contact_email_address, 
    ['[email protected]'], fail_silently=False) 

https://docs.djangoproject.com/en/dev/topics/email/で続きを読むに。

+1

こんにちは!返信ありがとうございます。私はあなたの解決策を試しましたが、settings.pyで指定されたEMAIL_HOST_USERをまだ使用していました([email protected]) – patty

+0

問題は、 GmailのSMTPサーバーを使用していますか?Gmailでは、承認されたアドレスでのみメールを送信できます。https://mail.google.com/mail/u/0/#settings/accountsに送信者アドレスが記載されていることを確認してください。 –

+0

はい、私はGmailのサーバーを使ってできないと思っています。他のソースから、カスタム送信者がスパムに使用できるので許可されていないと読んだことがありますが、メールサーバーを使用する以外の方法もあります。 ! – patty

関連する問題