2009-04-19 3 views
3

私はdelbian linuxでメールを送る必要があります。どのように送信します?私は256 MBのLinuxボックスで私のサーバを走らせて、私はpostfixとsendmailが過労だと聞いた。pythonでメールを送る方法ssmtpとsmtplib

最近、私は実行可能ファイルと思われるssmtpを見つけました。プロセスとして実行する必要があり、osモジュールを使用してPythonを呼び出しました。

代わりに、pythonはすでにsmtplibを提供しています。

ssmtpをpythonのsmtplibに使用する利点は何ですか?

答えて

5

Pythonプログラムでは、利点はありません。

ssmtpの唯一の目的は、SMTPプロトコルをsendmail APIでラップすることです。つまり、本格的なsendmailと同じオプション、引数、および入力を受け入れるプログラム/usr/sbin/sendmailを提供します(ほとんどのオプションは何もしません)。舞台裏では、電子メール自体を処理する代わりに、SMTPサーバーにメッセージを送信します。これは、sendmailプログラムが必要なシステムのためで、おそらくSMTPを理解していないからです。たとえば、古いバージョンのPHPがこの要件を満たしていると思います。最近のバージョンでも、いわゆるsendmailインターフェース(すなわちプログラムsendmail)は、SMTPを直接使用するよりです。 (私は少しの間PHPを使用していませんが、現在の状態についてはわかりません)

しかし、Pythonでは状況が逆になります。SMTPを直接使用するのが簡単な組み込みライブラリがありますsendmailを使用すると、少し複雑で、Pythonに含まれていないものにも非常に依存するsubprocessモジュールを呼び出す必要があります。したがって基本的にはsmtplibを使用しない理由はありません。

+1

良い情報です。ありがとうございました – Krish

+0

ssmtpはアカウントの資格情報を隠すこともできますし、あなたのアプリがメールを送信するためにできることを制限してくれます。何か不足していますか? – kberg

2

さらに、ポストフィックスは、「サテライト」モードでのインストールが非常に簡単です。このモードではすべてキューに入れられ、電子メールが配信されます。独自の電子メールキューを実装するよりも簡単です。ほとんどの適切なパッケージ管理システムでは、このように構成できます。

1

他の軽量SMTP送信者があります(msmtpなど)。

しかし、Postfixは256 Mbのマシンでは問題ありません。 Postfixのような完全なMTAについての良い点は、メッセージが保存され、宛先サーバがダウンしていれば再試行することです。 smtplibとリモートマシン上のサーバーを使用すると、プログラムはネットワークに依存します...

関連する問題