質問 :Linux コマンドライン (またはシェル スクリプト) から添付ファイル付きの電子メールを送信するにはどうすればよいですか?また、Linux コマンドラインから電子メールで添付ファイルと本文の両方を一緒に送信できますか?
答え :以下で説明するように、Linux コマンド ラインから添付ファイルと本文テキストの両方 (または件名行のある添付ファイルのみ) を送信できます。
1.件名と本文を記載したメールを送信
通常、Linux コマンド ラインから、以下に示すような件名と本文を含む電子メールを送信します。と入力する必要があることに注意してください。 (ピリオド) を別の行に挿入して、テキストの本文が終了したことを示します。
$ mail [email protected] Subject: Email Testing from Linux Dear, It is very easy to send an email from Linux command line. Thanks, Ramesh . Cc: [email protected]
ファイル (body-message.txt など) から本文を読みたい場合は、以下に示すようにメールを送信してください。
$ cat body-message.txt | mail -s "Email testing from Linux" [email protected]
2.添付ファイル付きのメールを送信
電子メールから添付ファイルを送信するには、uuencode コマンドを使用します。 RedHat (および関連するディストリビューション) では、uuencode は sharutils パッケージの一部です。したがって、以下に示すように sharutils をインストールしてください。
# rpm -ivh sharutils-4.6.1-2.i386.rpm Preparing... ############################## [100%] 1:sharutils ############################## [100%]
uuencode があることを確認したら、以下に示すように添付ファイル付きのメールを送信してください。
$ uuencode input-attachment.txt output-attachment.txt | \ mail -s "Email With Attachment" [email protected]
この例では、
- input-attachment.txt は、メールに添付するファイルです。
- ファイルを別の名前で添付したい場合は、uuencode の 2 番目のパラメータとして指定します。この例では、input-attachment.txt ファイルの内容が output-attachment.txt として添付されます
注:以下に示すように、uuencode を使用して base64 添付ファイルを送信することもできます。
$ uuencode -m input-attachment.txt output-attachment.txt | \ mail -s "Email With Base64 Attachment" [email protected]
3.添付ファイルと本文を含むメールを送信
以下に示すように、添付ファイルと本文メッセージの両方を含むメールを送信できます。
$ ( cat body-message.txt; uuencode input-attachment.txt output-attachment.txt ) \ | mail -s "Email With Body Text and Attachment" [email protected]