web-dev-qa-db-ja.com

コマンドラインでメールを送信するために何を設定する必要がありますか?

私は自宅のコンピューターで作業しています。メールを送信したいのですが、次のことを試しました。

uuencode all.sh all.sh | mail [email protected] 

しかし、問題は私の電子メールに何も届かないことです、私はただ次のエラーを受け取ります:

mail: cannot send message: Process exited with a non-zero status

事実、私は作業で同じコマンドを使用し、それはうまく機能します。この問題を修正するための提案をいただければ幸いです。パーソナルコンピュータでそのコマンドラインを使用する前にファイルを設定する必要があるかどうかはわかりません。 muttをインストールしてみました:

mutt [email protected] < all.sh 

しかし、次のエラーが発生しました。

sendmail: Cannot open mail:25
Error sending message, child exited 1 ().
Could not send the message.
3
neo33

基本的なmailコマンドはメールリーダーとコンポーザーのみであり、ネットワーク経由でサーバーと通信する方法を知りません( [〜#〜] smtp [ 〜#〜] プロトコル)。 SMTPの会話は、 MTA(メッセージ転送エージェント) の仕事です。 UbuntuのデフォルトのMTAはPostfixです。 Postfixを構成するには、

Sudo dpkg-reconfigure postfix

メールのみを送信し、受信しない場合は、「衛星システム」を選択してください。

永続的に接続されたマシンがあり、適切なDNSエントリがあり、できれば静的IPアドレスがない限り、メールを直接受信することはできません。外部サーバーを使用してから、次のようなプロトコルを使用してメールをフェッチする必要があります。 IMAP。

Ubuntuには、mailコマンドのいくつかのバージョンが含まれています。 heirloom-mailxバージョン はSMTPを話す方法を知っています。 ~/.mailrcで構成します。構成は次のようになります。

set smtp=smtp.example.com
set smtp-use-starttls
set smtp-auth-user=neo33
set smtp-auth-password=swordfish