シェルスクリプトを介して電子メールを送信するときにファイルを添付する方法は?

シェルスクリプトを介して電子メールを送信するときにファイルを添付する方法は?

シェルスクリプトでメールを送信するには、次のコードを使用しています。

パスワード:mail -s "subject" [email protected] <<< "Body of the mail"

効率的。ところでメールを送信する際にファイルを添付したいです。どうすればいいですか?

答え1

Linuxシステムに「mutt」がインストールされている場合は使用できます。

$$ mutt -a "file_attachment"

他のオプションはmailコマンドと同じです。

答え2

ファイルを添付する1つの可能な方法は、ファイルをエンコードすることです。例えば

uuencode file_to_attach file_to_attach|mail -s "subject" [email protected] 

file_to_attachメッセージに添付されます

答え3

使用できるmime-constructhttps://linux.die.net/man/1/mime-construct)またはmakemimehttp://manpages.ubuntu.com/manpages/trusty/man1/makemime.1.html)これらのツールのいずれかが利用可能な場合。

マニュアルページの例mime-contruct:

プレーンテキスト部分を送信してファイルを添付すると、ファイルのコンテンツタイプと添付ファイル名が自動的に設定されます。

mime-construct --to "$recip" --subject "$file" \
--string "Here's the file I told you about.$nl" \
--file-attach "$file"

もちろん、スクリプトからすべてのMIMEヘッダー、境界、およびファイルエンコーディングを手動で生成することもできます。 (BSDライセンス付き)HylaFAXソフトウェアの一部である一部のスクリプトでは、(やや複雑な)例を見つけることができます。CreateMailMessageソースコードディレクトリnotify.sh.incommon-functions.h.in関数を見つけます。util(望むよりhttps://www.hylafax.org/ftp://ftp.hylafax.org/source/)

関連情報