2016-05-13 9 views
1

私が必要とするのはEMAIL_HOST_USEREMAIL_HOSTEMAIL_PORTのような電子メールの設定を取ることです。私のデータベースから、その値をsettings.pyファイルの電子メール設定に渡します。これは可能ですか?もしあれば、どうしたらいいですか?DBから電子メールの設定を取得するにはどうすればよいですか?

+1

ことはできませんこれまで、settings.pyは、あなたのランニングENVを設定するには、最大負荷をDjangoの最初のものであるから。この時点でDjangoはデータベースにアクセスできません。 – RA123

+0

ある時点で私はカスタムの 'EmailBacked'を作成してデータベースから値を取得しようとしましたが、うまくいきませんでしたが、私のカスタム' EmailBackend'やカスタムバックエンドやりたいことをする方法を知っていますか? –

+1

これを達成するには長い道のりがありますが、djangoではできません。 settings.pyファイルがまだロードされていないので、djangoやその機能の一部を使用することはできません。あなたが少し外でdjangoを作業するのが快適なら、私はその方法論(環境変数設定、Pythonを使ったカスタムRaw SQLクエリ、あなたのデータベースが何であれ、それはPythonで直接作業します)に取り掛かります – RA123

答えて

1

あなたはこのようdjango.core.mail.backends.smtp.EmailBackendを使用している場合Actualyこれはやることが難しいことではありません:あなたはこのようなバックエンドを作成したら

from django.core.mail.backends.smtp import EmailBackend 

backend = EmailBackend(host = server.host, server.port, server.username, serer.password) 

。メッセージの送信方法には2つのオプションがあります。最初に、メッセージ(またはメッセージ)を送信するsend_messages()メソッドを呼び出すことができます。第二に、EmailMessageに接続として使用するように指示できます。 そして、server.whateverはどこから来たのですか?もちろんデータベース。

class EmailServer(models.Model): 
    host = models.CharFields() 
    .... 
+0

ああ男!それは実際に簡単です、ありがとう –

+0

喜んで助けになっている – e4c5

関連する問題