Mailxまたはmailでファイルを送信する必要がありますが、本文メッセージではなく添付ファイルとして送信する必要があります。それを行う方法はありますか?最終的に、手順などに使用できる他のツールがSolarisにありますか?ありがとう
-aを使用してmailxにファイルを添付できます。
echo "this is the body of the email" | mailx -s"Subject" -a attachment.jpg [email protected]
添付ファイルと同じディレクトリにある限り、正常に機能するはずです。そうでない場合は、 `のようにディレクトリを指定できます
samachPicsFolder/samachpic.jpg
mailx
が-a
オプションをサポートしておらず、mutt
にアクセスできず、uuencode
を次のように使用したくない場合1980年代からのフォールバック、最後の手段として、小さな [〜#〜] mime [〜#〜] ラッパーを自分でつなぎ合わせることができます。
#!/bin/sh
# ... do some option processing here. The rest of the code
# assumes you have subject in $subject, file to be attached
# in $file, recipients in $recipients
boundary="${RANDOM}_${RANDOM}_${RANDOM}"
(
cat <<____HERE
Subject: $subject
To: $recipients
Mime-Version: 1.0
Content-type: multipart/related; boundary="$boundary"
--$boundary
Content-type: text/plain
Content-transfer-encoding: 7bit
____HERE
# Read message body from stdin
# Maybe apply quoted-printable encoding if you anticipate
# overlong lines and/or 8-bit character codes
cat
cat <<____HERE
--$boundary
Content-type: application/octet-stream; name="$file"
Content-disposition: attachment; filename="$file"
Content-transfer-encoding: base64
____HERE
# If you don't have base64 you will have to reimplement that, too /-:
base64 "$file"
cat <<____HERE
--$boundary--
____HERE
) | sendmail -oi -t
sendmail
へのパスは、多くの場合、システムに依存します。 /usr/sbin/sendmail
または/usr/lib/sendmail
または...PATH
にない場合は、他の無数の奇妙な場所を試してください。
これは迅速で汚いです。適切なMIME準拠のために、必要に応じてサブジェクトのRFC2047エンコーディングなどを実行する必要があります。また、コードのコメントの注記も参照してください。しかし、平均的な米国中心の7ビット英語のcronジョブでは、問題なく動作します。
Mailxに関しては、ここでいくつかのインスピレーションを見つけることができます http://www.shelldorado.com/articles/mailattachments.html
Muttをご覧になることをお勧めします http://www.mutt.org/
Mailxを使用して添付ファイルを送信するには、次のコマンドを使用してみてください。
uuencode source_file encoded_filename |mailx -m -s "Subject" [email protected]
mutt
を使用することをお勧めします。これは、どのシステムにもすばやくインストールできるほど軽量です。