軽量の送信SMTPサーバー


46

送信メール専用の軽量SMTPとして何を使用しますか?

イベントがときどき発生するときにSMTP経由で電子メールを送信するアプリを実行していますが、完全な機能を備えた電子メールサーバーは必要ありません。

編集:もしそれが最良の選択であるなら、私は接尾辞のようなものを使うことを喜んでいます。私はもっ​​と簡単なものがあり、箱を使い果たしてしまうかもしれないと考えていました。


eximやpostfixのようなものに固執することは完全に合理的だと思います。あなたが簡単なことをしているなら、それらを設定するのは難しくありません。
ファヒームミタ

「軽量」の定義は何ですか?メッセージの大きさはどれくらいですか?「一度」はどのくらいの頻度で発生しますか?
マイクB

回答:


22

最小限のリレー専用メール転送エージェント(MTA、または「メールサーバー」)にはいくつかの選択肢があり、そのいくつかは他の回答で言及されています。

これらのいずれかが機能するには、メッセージをさらに中継する完全なMTA(「メールハブ」と呼ばれる)が必要であり、このメールハブを制御することを強くお勧めします。そうでなければ、Bad Things™が発生する可能性があります。


esmtpはメンテナンスされなくなりました。
ニコラコトゥール

1
nullmailerには深刻なSMTPコンプライアンスの問題があります。SMTP永続エラーが発生すると、無限に再試行されます。帯域幅/トランジットbugs.debian.org/cgi-bin/bugreport.cgi?bug=329192
14

@telent:このようなシナリオではnullmailerを使用しないでください。

ありがとう!troubleshooters.com/linux/nullmailerの構成ガイドには、nullmailerのセキュリティ問題が記載されています。コマンドラインでパスワードを公開するか、少なくともそれを行うために使用します。他の会話では、mstmpがnullmailerよりもメールをキューに入れる方法を少し明確にしていないことに注意しています。
nealmcb

11

私見、これを行う最も簡単な方法は後置です。次のコマンドを使用して、光発信リレーとして設定できます。

postconf -e relayhost=other.mailserver.com
postconf -e myorigin=my.domainname.com

で指定されたSMTPサーバーrelayhostが認証を必要としない限り、リレーを許可するか、これが機能する受信者アドレスの有効な宛先です。

myoriginパラメータは、デフォルトのドメイン名になります。したがって、fooにメールを送信すると、foo @ my.domainname.comに送信されます。ユーザーバーから送信されるメールは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

すべてのメールは、指定されたユーザー名とパスワードでリレーホストに送信されます。


これらの設定を試してみましたが、エラーが表示されます:「エラー:サポートされていない辞書タイプ:pcre」
-valentt

1
pcreおよび/またはpostfix-pcreをインストールして、再試行してください。
バハマ

私はそれを理解しましたが、その間に、2つのパッケージがありませんでした、最初のパッケージはあなたが言ったようにpostfix-pcreですが、他のパッケージは奇妙なものでした-libsasl2-modules。libsasl2とlibsasl2-modules-dbがどのようにインストールされていたのか困惑していますが、libsasl2-modulesが欠落していました...これでようやくすべてが機能します。この重要な情報を回答に追加してください。
バレンタイン

1
tlsについては、次も使用しました。relayhost=other.mailserver.com:465それsmtp_tls_wrappermode=yesから、smtp_tls_security_level=encryptしかし、ローカルユーザーを認証として使用しようとしています。私は何とか認証ユーザーを書き直さなければなりません。
tu-Reinstate Monica-dor duh

「relayhostで指定されたSMTPサーバーが認証を必要としない限り」-> OKですが、最近ではほとんどありません。あなたの提案は正しいですが、ほとんどは無関係です!
FarO

9

sendmail(8)のようなシェルから実行できるプログラムが必要だと仮定すると、おそらくMSMTPがあなたのニーズに合うでしょうか?sendmailと同様に、リモートSMTPサーバーに接続し、stdinとして取得したメールを送信できます。


これにはMSMTPを使用しますが、うまく機能し、構成は非常に簡単です。
dsp

これをお勧めできてうれしいです。私はかなり長い間、そのようなものを探していました。sendmailの構成は、私のニーズに対してあまりにも差別化されています。
ixtmixilix


2

sSMTPがニーズに適している場合があります。この記事とその制限について読んでください。

正直なところ、メールを送信するためだけのものであっても、postfixやeximをインストールすることについてはあまり強調しません。


1
ssmtpを+1、-1不要のsendmailにコメント、などである完全なMTA、使用推奨する方法難しい右のやるべきことを。メールサーバーの構成と保守が適切に行われていないと、メール管理者の生活は大変なものになります。

@hop:両方の点で同意しません。sendmailはひどいです。また、たとえばeximはDebianのデフォルトであり、非常に使いやすいです。たぶん後置詞もそうですが、私はそれを使ったことがありません。
ファヒームミサ

2

Dockerを使用する場合、https: //hub.docker.com/r/zixia/simple-mail-forwarder/ は簡単な展開に適した選択肢であり、smtp(tls)を完全にサポートする1​​0MBのサイズのみです。


1

技術的には、ホストに電子メールサーバーは必要ありません。必要な(そしておそらく既に持っている)ものは、企業のSMTPサーバー(接続できる場所であればどこでもかまいません)に接続できるsmtp-client(またはMUA)です。 )

アプリ(およびアプリが記述されたプログラミング言語)に応じて、アプリがネットワーク上の「the」SMTPサーバーに接続するさまざまな方法があります。

通常、PHPまたはPythonの場合、「SMTP」サーバー(ホストまたはネットワーク上の他の場所にある可能性があります)を指定するアプリを含む構成ファイルがあります。既にネットワーク上にメールサーバーがある場合は、そのサーバーへの設定。

他のオプションが存在しない場合、アプリは次のようなもので処理できる標準出力に電子メールメッセージを生成できます。

listoftargets = "me@example.com jab@example.com" echo "テストコンテンツ" | mail -s "Test Subject" $ listoftargets

一部のシステムでは、送信専用の最小限のメールサーバーがすでにあります。

サム・T


クラウドには多数のサーバーがあり、外部のサーバーに依存するのではなく、それぞれが独自の送信SMTPサーバーを持つようにしたかったのです。そのようにして、リモートSMTPサーバーがダウンしても、すべてのサーバーに影響するわけではありません。
FlappySocks

1)PHPまたはPythonにsmtpの部分を実行させる場合、MTAが処理するすべての作業(キューイング、エラー処理)を行う必要があります。2)最後に、最初に言うことと矛盾します

一部のLinuxアプリケーションは、実行可能ファイルを期待するように、mailまたはsendmail名前付きでセットアップされています。システム通知。それが全体のポイントですよね?それ以外には制約はありません。
クレイグヒックス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.