web-dev-qa-db-ja.com

同封のファイルを使用してmailx経由でメールを送信する方法

Mailxまたはmailでファイルを送信する必要がありますが、本文メッセージではなく添付ファイルとして送信する必要があります。それを行う方法はありますか?最終的に、手順などに使用できる他のツールがSolarisにありますか?ありがとう

12
slafik

-aを使用してmailxにファイルを添付できます。

echo "this is the body of the email" | mailx -s"Subject" -a attachment.jpg [email protected]

添付ファイルと同じディレクトリにある限り、正常に機能するはずです。そうでない場合は、 `のようにディレクトリを指定できます

samachPicsFolder/samachpic.jpg
13
Jeff

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ジョブでは、問題なく動作します。

4
tripleee

Mailxに関しては、ここでいくつかのインスピレーションを見つけることができます http://www.shelldorado.com/articles/mailattachments.html

Muttをご覧になることをお勧めします http://www.mutt.org/

1
Fredrik Pihl

Mailxを使用して添付ファイルを送信するには、次のコマンドを使用してみてください。

uuencode source_file encoded_filename |mailx -m -s  "Subject" [email protected]
1
Ankit Singh

mutt を使用することをお勧めします。これは、どのシステムにもすばやくインストールできるほど軽量です。

0
ShiDoiSi