質問 :Linux マシンから mailx コマンドを使用して添付ファイル付きの電子メールを送信する方法は?
答え:
mailx コマンドを使用して Linux マシンから電子メールを送信するための基本的な構文を以下に示します:
# echo "this is the body of the email" | mailx -vvv -s "test mail" -r "From" -S smtp="your-smtp" someone@address
ここで、
-vvv = Verbosity. -s = Specifies the subject. -r = Email sent from. -S = Specifies the smtp server.
方法 1 :uuencode を使用する (古い方法)
mailx のバージョンが 12.x 未満の場合は、uuencode コマンドを使用して添付ファイル付きのメールを送信できます。
# uuencode [path/to/file] [name_of_attachment] | mailx -s "Subject" [email protected]
方法 2 :mailx コマンドで -a スイッチ
メールで添付ファイルを送信するには、mailx で新しい添付スイッチ (-a) を使用します。 -a オプションは、uuencode コマンドよりも使いやすいです。
# mailx -a file.txt -s "Subject" [email protected]
上記のコマンドは、新しい空白行を出力します。ここにメッセージの本文を入力し、[ctrl] + [d] を押して送信します。これにより、適切な Content-Type ヘッダーと境界ヘッダーを使用して、送信メールにファイルが正しく添付されます。
これをより「スクリプト化可能」にするために、次のように本文なしでメッセージを送信できます。
# mailx -a file.txt -s "Subject" [email protected] < /dev/null
メッセージ本文付きのメールを送信するには、上記のコマンドの /dev/null をメッセージ本文ファイルに置き換えます。
新しいバージョンの mailx では、送信メールで使用されるヘッダーが次のように変更されました:
From: Date: To: Subject:
以下のフォームへ:
From: Date: To: Subject: User-Agent: MIME-Version: Content-Type: Content-Transfer-Encoding:注: 受信メールのヘッダーを確認してください。古い uuencode 添付方法で送信された電子メールのコンテンツ タイプは Content-Type:text/plain with no bound になります。新しい mailx -a スイッチを使用した添付ファイルのある電子メールには、Content-Type:multipart/mixed; が含まれます。 boundary="=...." headers.Linux / UNIX :mutt を使用して添付ファイル付きのメールを送信する
solaris の mailx コマンドを使用して添付ファイル付きのメールを送信する方法