1

Postfix サーバーを明示的に起動する必要がない Django で postfix sendmail コマンドをエミュレートしたいと考えています。

たとえば、コマンド ラインで次のように入力すると、次のようになります。

sendmail recipient@example.com
my message body
^D

これにより、recipient@example.com にメッセージが送信されます。後置サーバーを明示的に起動する必要はありません。

他の言語 (Perl と PHP) には、基本的にこれを複製するバインディングがあるようです。しかし、Django/Python でそれを行う方法が見つかりませんでした。私が得た最も近いものは、設定することでした

EMAIL_HOST = 'localhost'

settings.py、手動で

postfix start

これにより、django send_mail() コマンドがその機能を実行できるようになりますが、バックグラウンドで postfix サーバーを実行せずにこれを実現する方法はありませんか? 他の環境ではこれをどのように達成していますか?

ありがとう -S

(いいえ - これを行うためにサードパーティの Gmail アカウントを設定したくありません - これはよくある質問です)。

4

2 に答える 2

0

多分これはあなたを助けるでしょう。個人的には試していませんが、postfixサーバーの設定に伴うすべての問題なしにあなたのニーズに合うようです。

于 2011-10-05T06:28:36.123 に答える
0

電子メール配信をエミュレートする簡単なソリューションは、Python デバッグ サーバーを使用することです。以下は、ポート 1025 で smtp モードで実行します。

python -m smtpd -n -c DebuggingServer localhost:1025

ただし、Django テスト サーバーが localhost のポート 1025 で電子メールを送信していることを確認する必要があるため、settings.py.

EMAIL_PORT = 1025

それが正しく機能している場合、テスト サーバーは Django から送信されたすべてのメールを端末に直接エコーするだけなので、開発中に出力を監視できます。最近、Ubuntuボックスでpostfixを動作させるのに苦労したときにこれを使用しました.Djangoテストサーバーがハングして壊れていましたsend_mail().

電子メールのテストに関する詳細が記載された Django のドキュメントを次に示します。

于 2012-06-08T13:43:02.470 に答える