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


17

次のようにmailLinux端末からコマンドを使用する場合、電子メールの送信に使用される電子メールアカウントは次のとおりです。

echo "Body of email" | mail -s "Subject" abc@def.com

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

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

回答:


12

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

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

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

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

番号; このエラーメッセージは自分のコンピューターから返されます。メールサーバーは、ローカルメールのみを転送するように構成されています(あるユーザーから別のユーザーに(最も一般的には、cronジョブが失敗した場合はcronデーモンから))。通常、これらのメッセージはに行くと、使用して読み取り可能である、、、または同様のプログラム。(IIRC、Thunderbirdにはローカルメールスプールもインポートできました。)/var/mail/loginmailmuttre-alpine

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

ただし、これはパーソナルコンピューターで使用していると思われるため、代わりに外部メールアカウント(たとえば、Gmailアドレスをお持ちの場合)を使用することをお勧めします。どのMTAがインストールされているか(Ubuntu / Debianで、dpkg -S /usr/sbin/sendmail教えてくれます)を見つけてから、グーグルで「program-name relay gmail」を探してチュートリアルをご覧ください。

または、リレー専用に設計されたMTAをインストールします。msmtpそしてesmtp良い選択と簡単に設定できます。


すべての助けてくれてありがとう。あなたが提案したpastebinコマンドは私のニーズを満たすことになりました。メール中継用のスマートホストのセットアップに取り組みます。
user001

4

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


2
@ user001 これは役立ちますか?
ダニエルベック

2
@ USER001:このような場合は、あなたが見てかかることがありますpastebinsをコマンドラインから使用するのは簡単です、そのうちのいくつか。たとえば、curl -Fsprunge=\<- http://sprunge.us < myfile
user1686

1
@ user001:exim4デーモンを実行していますか?んsudo mailqメッセージを一覧表示しますか?送信サーバー(/var/log/exim4/mainlog)および受信者(可能であれば)のログを確認しましたか?
user1686

1
@ user001:ISPが接続をブロックしている可能性があります。これは特にホーム接続でよく見られます-感染したPCによって送信される大量のスパムを減らすために、ポート25へのすべてが単にドロップされます。(ただし、別のポートとSMTP認証を使用するリレーを構成できます。)
user1686

1
@ user001:別のメールサーバー(「スマートホスト」と呼ばれることもあります)を介して中継が行われます。アカデミーに独自のメールドメインがある場合、ネットワーク管理者がこれを支援する場合があります。そうでない場合は、Gmailまたは同様のメールボックスから送信するようにサーバーを構成できます。チュートリアルはこちら
user1686

4

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 smtp-auth-user=name@gmail.com
set smtp-auth-password=pass
set from=name@gmail.com
}

この場合、メールは「name@gmail.com」から送信されます。


@ user001:(スクリプトから)メールを送信したいだけですか、それとも受信したいですか?
カロロス

スクリプトからメッセージを送信できるようにするため。ありがとう。
user001

2
このmailrc構文はに固有であることに注意してくださいheirloom-mailx。一部のシステムにはGNU mailutilsまたはBSD が付属している場合がありますがmailx、どちらも構文エラーについて文句を言うでしょう。(その場合は、インストールすることをお勧めしますheirloom-mailx-またはさらに良い、muttまたはre-alpine。)
user1686

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.