mailxはSMTPリレーを使用してメールを送信しますか、それともターゲットSMTPサーバーに直接接続しますか?


30

次のコマンドを使用してメールを送信するとします。

mailx person@x.com

次に、mailxは最初にメールを中継するためにISPのSMTPサーバーを見つけようとするか、直接接続しますか。PCがパブリックIPアドレスを持っているか、NATの背後にあるかによって異なりますか。PCでmailxの設定を確認するにはどうすればよいですか?tcpdumpを使用してこれを確認するにはどうすればよいですか?

回答:


29

伝統的に、Unix mailおよび派生物(および他の多くのUnixツール)は、/usr/bin/sendmailほぼすべてのメール転送エージェント(MTA – postfix、exim、courier、およびもちろんsendmail)によって提供されるインターフェースを使用します。

つまり、mailプログラムはネットワークプロトコルを一切使用せずsendmail、標準入力経由でメッセージを送り、実際の配信を処理します。(これは、SMTPを使用するメール、UUCPを使用するメール、BITNETを使用するメール...に遡ります。

メッセージがを介してキューに入れられるsendmailと、MTAは、SMTPまたは他の何かを介して、実際のメッセージ送信を処理します。構成に応じて、宛先MTAに直接接続するか、別のホスト(スマートホストとも呼ばれる)を介してメールを中継します。

サーバーでは、直接接続がより一般的です。スマートホストを介したリレーは、自宅の接続のパーソナルコンピューターでより一般的です。GmailまたはISP /職場の電子メールアカウントを介したリレーは、包括的な「動的IP」スパム対策フィルターを回避するために不可欠です。

(のようないくつかのMTA esmtpかは、nullmailerホームユーザーのために特別に構築されており、常にこれらのメールの受信をサポートしていない。relayhostを使用して、リソースの多く軽いです。)

mailx→[/ usr / bin / sendmail]→ローカルMTAキュー→[SMTP]→受信者MTA→受信者受信ボックス
mailx→[/ usr / bin / sendmail]→ローカルMTAキュー→[SMTP]→GmailまたはISP /作業サーバー→[SMTP]→受信者MTA→受信者受信ボックス

他のプログラム、主にThunderbirdやOutlookなどのユーザーフレンドリーなグラフィカルクライアントは、常にリレー/スマートホストSMTPサーバー(再び、通常はGmailまたはISP /仕事用SMTPサーバー)に直接接続し、ユーザーに代わってメッセージを送信します。

ネイティブSMTPサポートは存在しますheirloom-mailxが、伝統的なものにはありませんbsd-mailx

アプリ→[SMTP]→GmailまたはISP /作業サーバー→[SMTP]→受信者MTA→受信者受信ボックス

第三の方法-受信者のサーバーに直接接続するには-ほとんどされて決して使用しない、と何のMUAはそれをサポートしていません。パソコンでは、これを使用すると、メッセージが拒否されます(感染したホームユーザーのIPアドレスから多くのスパムが送信されます)。

アプリ→[SMTP]→受信者MTA→スパムフィルターでキャッチ

1
Linuxで私のMTAを見つける方法は?
ロヒトバンガ

1
@iamrohitbanga 1)インストール済みパッケージのリストを確認します。(すべてのディストリビューションにデフォルトでMTAが付属しているわけではありません。)
grawity

1
@iamrohitbanga 2)すでに答えました。Outlookは多くの場合、自宅のパーソナルコンピューターで使用され、多くのメールサーバーは、ホームユーザーのアドレスから受信したメッセージを拒否します(それらからのスパム率が高いため)。そのため、企業サーバーを介した中継が必要です。
悲しみ

1
@iamrohitbanga 3)「または」は「両方」ではなく「どちらか」を意味します。Gmailをプライマリメールアカウントとして使用するユーザーは、Gmailのサーバーを介してメールを送信します。ISPにメールボックスがある人は、ISPのサーバーを使用します。
荒廃

1
@iamrohitbanga 4)「3番目の方法」をmailx 使用しないためです。私の回答の冒頭で説明したように、MTAを使用します。また、企業のインターネット接続を使用していない場合、PCから(リレーなしで)直接送信されたメールは破棄される可能性が非常に高くなります。
-grawity

31

mailxはSMTPを使用できます。設定ファイルは〜/ .mailrcです

1つの例は、GmailのSMTPを使用したmailxです。

configureは1つのコマンドで行うこともできます。

mailx -v -s "$EMAIL_SUBJECT" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://smtp.gmail.com:587 \
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
-S smtp-auth-user=$FROM_EMAIL_ADDRESS \
-S smtp-auth-password=$EMAIL_ACCOUNT_PASSWORD \
-S ssl-verify=ignore \
-S nss-config-dir=~/.mozilla/firefox/xxxxxxxx.default/ \
$TO_EMAIL_ADDRESS

通常のSMTPサーバーを使用する場合は、はるかに簡単です(詳細な紹介はこちらをご覧ください)。

mailx -v -s "$EMAIL_SUBJECT" \
-S smtp=smtp://smtp.example.com
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
$TO_EMAIL_ADDRESS

これらをmailxの構成ファイル〜/ .mailrcに入れることもできます


これは、デフォルトのmailxではないheirloom-mailxに依存することに注意してください。
スコット

@スコット:はい。ただし、Linuxディストリビューションに依存します。一部のシステムでは、デフォルトは家宝ではありません(例:Ubuntu:fclose.com/b/linux/1411/…。3つのmailxバージョンがあるようです)。Fedora、OpenSUSEなどの他のいくつかでは、デフォルトは「機能が豊富な」「heirloom-mailx」です。
エリツマ

@ericzma heirloom-mailxが最高だと思います/ heirloomはそれを行うことができる唯一のmailxです(コマンドラインでsmtpサーバーを指定)?デフォルトではインストールされていませんが、Debianでうまく動作します。Debianではには/ usr /ビン/家宝-mailxのの/ etc /代替/ mailxのリンクを/ usr / binに/ BSD-mailxののdebianに家宝-mailxのをインストールした後は、/ etc /代替/ mailxのリンクへのリンクをmailxをし、うまく働いていました
バロップ14

@barlopあなたの発見は私のものと一致しています:heirloom-mailxは動作しますが、bsd-mailxは動作しません。他の機能する実装についてはまだ知りません。
ericzma 14年

CentOS 6.7は、Heirloom mailx 12.4を使用します
ジョシュアグリゴニス

3

以下からのmailx(1)manページ、説明のセクション、文字列オプションのサブセクション:

   smtp   Normally, mailx invokes sendmail(8) directly to  transfer
          messages.  If the smtp variable is set, a SMTP connection
          to the server specified by the value of this variable  is
          used  instead.

これは私を少し混乱させました。もっと精巧にできますか。
ロヒトバンガ

うーん... sendmailこのオプションが設定されていない限り使用します。
イグナシオバスケス-アブラムス

1

sendmail / postixのようなローカルmtaのない代替手段があります。

debianパッケージssmtp

rpmの説明からの情報:

Summary     : Extremely simple MTA to get mail off the system to a Mailhub
URL         : http://packages.debian.org/stable/mail/ssmtp
License     : GPLv2+
Description : A secure, effective and simple way of getting mail off a system to your mail
            : hub. It contains no suid-binaries or other dangerous things - no mail spool
            : to poke around in, and no daemons running in the background. Mail is simply
            : forwarded to the configured mailhost. Extremely easy configuration.

hth

ステファン・K


1
ほぼ... ssmtpはMTAのようなSMTPクライアントです。/ usr / bin / sendmailのように動作しますが、特定のドメインのMXレコードに直接接続する代わりに、ssmtpを実行しているマシンにアクセス可能なSMTPサーバー(通常はユーザー名/パスワード経由)にこのタスクを委任します。これは、ADSLの動的IP範囲、危険なホスティングプロバイダなどのような高いスパムIP範囲からの電子メールを送信するこれらのシステムのために特に有用である
アンドレ・デ・ミランダ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.