* nixのコマンドラインからファイルを電子メールで送信する最も簡単な方法は?


10

* nixシェルの添付ファイルとして単一のファイルを電子メールで送信するために使用できる最も簡単な(できれば最も移植性の高い)コマンドは何ですか?

回答:


11

それがバイナリ添付ファイルであると仮定します:

uuencode [ファイル名] [ファイル名] | メール-s [件名] [受信者アドレス]

それが単なるテキストファイルの場合、UUencodingを気にする必要はありません。例:

mail -s [件名] [受信者アドレス] <[ファイル名]

ほとんどの* NIXにはメールとuuencodeがあるので、これはほとんどどこでも機能するはずです。


メッセージ本文ではなく、添付ファイルとしてテキストファイルが必要な場合はどうですか。
ユヴァルA

それは場合によって異なります-プレーンなGNUメールではそれができないと思うので、実際のメールクライアントを使用する必要があります。パイン、マット、または類似のもの。これらのどれを使用できるかは、システムにインストールされているものによって異なります。muttを使用すると、Gavinの回答(下記)は問題なく機能します。
RainyRat 2009年

松がいい!テキストGUIを使用してコマンドラインから使用できますか?
ユヴァルA

それは可能だと思います。詳しくは、staff.washington.edu / chappa / pine / info / outgoing.htmlをご覧ください。
RainyRat 2009年

11

muttを使用すると、次のことができます。

mutt -z -a <file> -s <subject> -- user@example.com

または、本文を入力したくない場合:

mutt -z -a <file> -s <subject> -- user@example.com < /dev/null


muttは私のシステムでは使用できません。とにかくありがとう
Yuval A

これは簡単なこととポータブルなことの間のトスアップになると思うでしょう。mailxは移植可能ですが、必ずしも簡単ではありません。RainyRatが言及しているように、フルMUAを使用してコマンドラインから実行する必要があると思います。
ギャビンマク

2
--これらのコマンドを機能させるには、電子メールアドレスの前にを追加する必要がありました。
Autumnsault、2015年

実際には、電子メールアドレスをファイル名から分離するためにダッシュが必要です "-user@example.com"、@ DoctorMohawkは正しいです。それらを回答の本文に追加しようとしています。
ジェフクレイトン

2

" sendEmailは軽量のコマンドラインSMTP電子メールクライアントです。コマンドラインから電子メールを送信する必要がある場合、この無料のプログラムは完璧です。使いやすく機能が豊富です。bashスクリプト、バッチファイルで使用するように設計されています、PerlプログラムおよびWebサイトですが、順応性が高く、要件を満たしている可能性があります。SendEmailはPerlで作成されており、モジュールを必要としないという点で独特です。直感的で柔軟なコマンドラインオプションのセットがあり、非常に簡単です[サポートされているプラ​​ットフォーム:Linux、BSD、OS X、Windows 98、Windows NT、Windows 2000、およびWindows XP]

私は以前にそれを使用したことがあり、本当にそれが好きでした。-aオプションを使用してファイルを添付できます。


+1-これは簡単であり、アクティブに維持されているため、私が必要とするものに最適でした!Debianシステムを使用している場合は、単にできますaptitude install sendemail。コマンドはsendEmail大文字の「E」の場合と同様にインストールされることに注意してください。
Topher Fangio

実際、tarballにはperlスクリプトといくつかのドキュメントが含まれています。ダウンロードして解凍し、実行するだけです(システムにperlがある場合)。でも、気に入ってくれてうれしいです。
クリントンブラックモア

1

コメントは付けられませんが..

  • これに対する答えは、もしあれば、mailxあなたの派生物が利用できるかどうかに大きく依存します。
  • ファイルは受信側のMUAによって問題なく表示されるはずですが、からのパイピングでuuencodeは技術的に添付ファイル付きの電子メールは生成されません。受け取ったメールのソースを見て理由を確認してください。

真実は+1。添付ファイルを送信できるバージョンのmailxがあることさえ知りませんでした(私のものは確かにそうではありません)。また、uuencode->メールパイプラインで必要な手動のuudecodingについても正しいです。
ギャビンマク

1

完全な移植性が必要な場合は、ポート25でメールサーバーにTelnetで接続し、SMTPコマンドを直接発行できます。それらはそれほど難しくなく、非常にスクリプト化可能である必要があります。


3
独自のSMTPサーバーを作成することもできます。
HARK

1

簡単なGoogleがこのページをめくり、さまざまなアプリケーションを使用してファイルを添付するさまざまな方法を説明しました。より一般的なもののいくつか-

  • uuenc8deを使用して、インライン「添付ファイル」を作成します。

  • メタメール -f file-to-attach -m mime-type

  • mpack -c mime-type file-to-attach

  • マット -a file-to-attach

  • エルム -A file-to-attach

さらに、メッセージを作成して送信するためのいくつかの シェルスクリプトPerlスクリプトへのリンクがあります。


1
echo "Email body text" | mail -s "Subject of email" -a file.to.attach.txt my@email.com

メール:不正なオプション
-a

1
これはmailx機能であることに注意してください。特定のパッケージがインストールされていることを確認してください
niXar

0

数年前、私はそれを行うシェルスクリプトを書きました。binmail.shと呼ばれていました。これは、base64エンコーダー(多くのソースコードはgoogleで見つけることができます)を使用し、RFC1521に従って添付ファイルを作成しました


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.