Linux の「mail」コマンドを使用すると、メールは実際にどのように送信されるのでしょうか?

Linux の「mail」コマンドを使用すると、メールは実際にどのように送信されるのでしょうか?

mail次のように Linux ターミナルからコマンドを使用する場合、電子メールの送信に使用される電子メール アカウントは何ですか。

echo "Body of email" | mail -s "Subject" [email protected]

メールが送信されない場合は、送信メール アドレスのユーザー名とパスワードを指定する必要がありますか?mail私が読んだすべてのチュートリアルでは、送信者アドレスについては何も指定されていません。

編集: 「リモート ドメインへのメール送信はサポートされていません」というエラー メッセージが表示される場合、これは ISP がメールの送信をブロックしていることを意味しますか? これを回避する方法はありますか? ありがとうございます。

答え1

次のように Linux ターミナルから mail コマンドを使用する場合、電子メールの送信に使用される電子メール アカウントは何ですか。

デフォルト設定では、ログインに使用したのと同じアカウントです。コンピュータにはメール サーバー プログラム (MTA) がインストールされています。通常は Postfix または Exim4 ですが、Sendmail や qmail の場合もあります。

このアカウントのメールアドレスはまたは で、FQDNは から取得できます。ただし、現在メールを受信できません。your-login@hostnameyour-login@fqdnhostname -fこのアカウントは、MTA が「ローカル メールのみ」に設定されており (以下のエラー メッセージに示されているように)、外部からのメッセージを受け入れないためです。

編集: 「リモート ドメインへのメール送信はサポートされていません」というエラー メッセージが表示される場合、これは ISP がメールの送信をブロックしていることを意味しますか? これを回避する方法はありますか?

いいえ。このエラーメッセージは、お使いのコンピュータから返されたものです。メールサーバーは、転送のみを行うように設定されています。地元メール – あるユーザーから別のユーザーへ(最も一般的には、クローンcronjob が失敗した場合はデーモンが実行されます)。通常、これらのメッセージは に送信され、、、、または同様のプログラムを使用して読み取ることができます。(記憶が正しければ、Thunderbird にはローカル メール スプールをインポートする機能もありました。)/var/mail/loginmailmuttre-alpine

メール サーバーを再構成して他のサイトとの間でメールを送受信するのは難しくありません。インストールされている MTA と Linux ディストリビューションによっては、1 つのコマンドでも十分な場合があります。たとえば、dpkg-reconfigure postfixシステムが Postfix を備えた Debian である場合などです。

ただし、これは個人のコンピュータで使用していると思われるので、代わりに外部のメール アカウント (たとえば、お持ちの場合は Gmail アドレス) を使用する方がよいでしょう。インストールされている MTA を調べ (Ubuntu/Debian ではdpkg -S /usr/sbin/sendmailわかります)、Google で「program-name relay gmail」と検索してチュートリアルを参照してください。

あるいは、リレー専用に設計された MTA をインストールします。msmtpこれらはesmtp適切な選択肢であり、設定も簡単です。

答え2

mail コマンドは、現在のアカウント、つまり username@domain でメールを送信します。ただし、通常、インターネット サービス プロバイダーは、スパムを避けるために、ユーザーが独自のメール サーバーを実行することを禁止します (関連するポートをブロックすることによって)。そのため、メールは送信されません。

ただし、送信の問題はマシンの構成に関連している可能性もあります。

編集: メールを有効にして、たとえば Gmail からメールを送信します。メールの基本設定を提供する ~/.mailrc ファイルに次の情報を入力します。ただし、このファイルにアクセスできるのは自分だけであることを確認してください (chmod 600 ~/.mailrc を使用)

account gmail {
set smtp-use-starttls
set ssl-verify=ignore
set smtp=smtp.gmail.com:587
#set smtp-auth=login
set [email protected]
set smtp-auth-password=pass
set [email protected]
}

その場合、メールは「[メールアドレス]「」。

答え3

送信元ユーザーのアカウント名とホスト名などですroot@myserver。必ずしも外部からメールを受信できる実際のメールボックスである必要はありません。

答え4

こちらを参照Linux コマンドラインからメールを送信する方法さらに詳しい情報については

関連情報