Python SMTPLIBと接続ごとの複数のメッセージ
質問
最近、Python用のSMTPLIB SMTPクライアントライブラリを研究していますが、それをサポートするSMTPサーバーに対するパイプライニングプロトコルへの参照を見つけることができませんでした。私が足りないものはありますか?まだ実装されていないのでしょうか? Pipeliningを使用したSMTPLIBではなく、他の実装は有効になっていますか?
ありがとう
解決
私が足りないものはありますか?
おそらく。
簡単に言えば PIPELINING
応答を待たずにSMTPコマンドを送信しています。利点はわずかであり、エラー状態の複雑さを増加させるため、実装される傾向はありません。
あなたのコメントから、1つの接続を介して送信されるメッセージが1つだけであることを心配しているように聞こえます。これではありません PIPELINING
.
smtplib
複数のメッセージに対して同じ接続を使用することをサポートします。あなたはただ電話することができます sendmail
複数回。例えば
s = smtplib.SMTP("localhost")
s.sendmail("foo@bar.baz",["bar@foo.baz"],message1)
s.sendmail("foo@bar.baz",["baz@foo.baz"],message2)
最終更新
「接続ごと」を追加できるメッセージの最大数はどれですか?
これは、SMTPデーモンによって異なります。 Eximはデフォルトで1000になるようです。
これを同期して行う必要がありますか、それともSMTPlibは最終的に現代のSendmailコールを処理しますか?
の呼び出し sendmail
メソッドは完了するまでブロックされ、通話はシーケンシャルになります。
並列化する必要がある場合は、スレッド、マルチプロセッシング、またはねじれたものを見る必要があるかもしれません。多くの可能なアプローチがあります。
許可されている同時接続の数は、SMTPデーモン構成アイテムである場合もあります。