コマンドラインから添付ファイルをメールで送信することはできますか?
可能であれば、次のようなシンプルなものが欲しいです。
mail -a myfile.txt -t [email protected] -s "Here's my file"
Ubuntuリポジトリ内のすべてのメールユーザーエージェントのうち、 mutt は長期サポートに恵まれているコマンドラインMUAであるようです。
マニュアル によれば、次のようなことができます。
mutt -a myfile.txt -s "Here's my file" -- [email protected]
ただし、メール転送エージェントも必要なため、どこにも移動しません。人気のあるものは:
canonicalがサポートしていると思われるものは、後置(Steveの修正に感謝)と exim4 だけです。
xdg-email も適切なUbuntu MUAであると言うことができますが、それはの優先MUAのみを実行するベアボーンフロントエンドですあなたに代わって。
どのMTAが使用に適しているかについてアドバイスが必要な場合は、ここで別の質問を開いてください。
添付ファイルの送信にも問題がありました。添付ファイルなしでメールを送信した場合、成功しましたが、添付ファイルがありませんでした。この問題は、sendemail
、mutt
、mail
、mailx
、uuencode
コマンドに存在していました。
幸いなことに、面白く解決されました。メールの送信にGmailを使用しています。 http://www.linuxandlife.com/2013/01/send-email-from-linux-terminal.html で宣言されているように、ターミナルでコマンドを使用してメールを送信するようにGmailを構成できます。
次を使用してテキストメールを送信できます。
mail -s "hello" [email protected] < /home/masoud/YOURFILE.txt
ただし、次のように添付ファイルとして同じファイルを送信することはできません:
mail -s "hello" [email protected] -a /home/masoud/YOURFILE.txt
または:
mail -s "hello" -a /home/masoud/YOURFILE.txt [email protected]
最後に、この形式のみが添付ファイルを送信できることを理解しました。
echo "your message here" | mail -s "title" -a /home/masoud/YOURFILE.txt [email protected]
面白いことに、違いは「エコー」コマンドの存在です。
添付ファイルの-a
オプションがUppercase-A
で変更されたようです。 -a
は、 doc に従ってヘッダーを変更するためのようです
コマンドとパラメーターが最近変更されたことがわかりました。
このコマンドで添付ファイルを送信する場合:
mail -s "your subject" [email protected] -A /your/attachment/absolute/path < /home/you/message.txt
オプションattachment
は、大文字のA
である-A
でなければなりません。
ファイルを送信したい場合がありますシェルから、そうでなければThunderbirdを使用。
この場合、Thunderbird -remote ...
を試してください-Thunderbirdが通常実行されていると仮定すると:
このコマンドは、実行中のThunderbirdインスタンスのメール作成ウィンドウを開きます。
「差出人」アドレスは、Thunderbirdで設定されているデフォルトアドレスです。
また、既存のアカウント設定が使用されます。別のセットアップは必要ありません。
件名が「S」、本文が「B」、添付ファイルが[email protected]
の/some/absolute/file.txt
宛てのメールの場合、コマンドは
Thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='[email protected]',body='B',attachment='/some/absolute/file.txt')"
2つの問題があります。
添付ファイルは絶対パスで指定する必要がありますが、これは実際には退屈です。これは、readlink -f
を使用して相対パスを解決することで処理できます。
Thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='[email protected]',body='B',attachment='$(readlink -f file.txt)')"
また、コマンドは長くなります。 4つの引数を指定して、シェルスクリプトまたはシェル関数を使用します。
Thunderbird-compose () {
Thunderbird -remote "xfeDoCommand(composeMessage,subject='$1',to='$2',body='$3',attachment='$(readlink -f $4)')"
}
この関数を使用すると、コマンドが読み取り可能になります。
Thunderbird-compose 'Some Subject' [email protected] 'Body of message' file1
thunderbirdの「書き込み」を開きます添付ファイル付きのウィンドウ、およびFrom、To、Subject、および本文のテキストを入力します。送信前に編集済みにすることができます。
debianのheirloom-mailx
パッケージは、MIME添付ファイルを簡単に送信するためのmailx
コマンドを提供します。次は私のために働く;
mailx -a attachment.Zip -s subject [email protected]
本文に添付ファイルを追加するために使用される別の回答を追加したいと思います。乾杯!!
echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- [email protected]