送信メールのみの軽量SMTPとして何を使用していますか?
たまにイベントが発生したときにSMTP経由で電子メールを送信するアプリを実行していますが、フル機能の電子メールサーバーは必要ありません。
編集:それが最良の選択であれば、私はpostfixのようなものを使用して(そして実際に)幸せです。私はもっと単純なものがあるかもしれないと思っていました、それは箱を使い果たします。
最小限のリレー専用メール転送エージェント(MTA、または「メールサーバー」)にはいくつかの選択肢があり、その一部は他の回答で言及されています。
これらのいずれかが機能するためには、メッセージをさらに中継する完全な本格的なMTA(「メールハブ」と呼ばれる)が必要であり、このメールハブを制御することを強くお勧めします。それ以外の場合、Bad Things™が発生する可能性があります。
私見、これを行う最も簡単な方法はpostfixを使用することです。次のコマンドを使用して、光送信リレーとして構成できます。
postconf -e relayhost=other.mailserver.com
postconf -e myorigin=my.domainname.com
relayhost
で指定されたSMTPサーバーが認証を必要としない限り、リレーを許可するか、これが機能する受信者アドレスの有効な宛先です。
myorigin
パラメータはデフォルトのドメイン名になります。したがって、fooにメールを送信すると、foo @ my.domainname.comに送信されます。ユーザーbarから送信されるメールは、bar @ my.domainname.comから送信されます。
認証が必要で、TLSをサポートする必要がある場合は、次のコマンドも実行します。
postconf -e smtp_tls_security_level=may
postconf -e smtp_sasl_auth_enable=yes
postconf -e smtp_sasl_password_maps=pcre:/etc/postfix/sasl_password_maps
次に/etc/postfix/sasl_password_maps
このコンテンツがあります:
/./ username:password
すべてのメールは、指定したユーザー名とパスワードでリレーホストに送信されます。
Sendmail(8)のようにシェルから実行できるプログラムが必要だとすると、おそらく [〜#〜] msmtp [〜#〜] がニーズに合うでしょうか? sendmailと同じように、リモートSMTPサーバーに接続して、stdinとして取得したメールを送信できます。
[〜#〜] esmtp [〜#〜] は、アプリケーションで機能するリレー専用メール転送サーバーです。
あなたはあなたのニーズに適したsSMTPを見つけるかもしれません。これとその制限について 記事 をお読みください。
正直なところ、たとえメールを送信するためだけのものであっても、postfixやeximをインストールすることにあまりストレスを感じることはありません。
Dockerを使用する場合、 https://hub.docker.com/r/zixia/simple-mail-forwarder/ は簡単にデプロイするのに適していますまた、サイズは10MBのみで、smtp(tls)を完全にサポートしています。
あなたは技術的にあなたのホストに電子メールサーバーを必要としません、あなたが必要とする(そしておそらくすでに持っている)ものはあなたの会社のSMTPサーバーに接続することができるsmtp-クライアント(またはMUA)です。)
アプリ(およびそれが記述されたプログラミング言語)に応じて、アプリがネットワーク上の「the」SMTPサーバーに接続するためのさまざまな方法があります。
通常、PHPまたはPythonでは、「SMTP」サーバーを指定するためのアプリを含む構成ファイルがあります(ホストまたはネットワーク上の他の場所に配置できます)。)すでにメールがある場合ネットワーク上のサーバーの場合、構成をそのサーバーにポイントするだけです。
他のオプションが存在しない場合、アプリは次のようなもので処理できる標準出力に電子メールメッセージを生成できます。
listoftargets = "[email protected] [email protected]" echo "テストコンテンツ" | mail -s "Test Subject" $ listoftargets
一部のシステムでは、送信専用の最小限のメールサーバーがすでに存在します。
サムT.