UNIXでHTML電子メールメッセージに添付ファイルを追加するには?

UNIXでHTML電子メールメッセージに添付ファイルを追加するには?

UNIXコンピュータでは、電子メール本文にHTMLファイルを電子メールで送信する必要があります。 HTMLファイルを呼び出してみましょうhello.html

で次のコードを使用していますbash script

(
echo "To: [email protected]" 
echo "Subject: Report" 
echo "Content-Type: text/html" 
echo
cat hello.html
echo 
) | /usr/sbin/sendmail -t

上記のコードは私にとってうまくいきます。今このメールにzipファイルも添付したいと思います。これを行う方法はありますか?

私は、およびmailmailx使用することに制限されています/usr/sbin/sendmail

ベストアンサー1

zipファイルを添付して実際のメールを自分に送信し、元のコンテンツを確認することをお勧めします。

メール形式は次のとおりです。ジェスチャー広大極テキストメールにさまざまなファイル形式が含まれる方法を指定する標準です。

あなたの場合、トップレベルコンテンツタイプ次のようになりますマルチパート/交換またはマルチパート/ハイブリッド。 2つ以上があり、独自の部品またはセクションがあります。コンテンツタイプ。一つはタイプがありますアプリケーション/zip。これアプリケーション/zipセクションには、zipファイルのテキストエンコーディング(Base 64など)が含まれています。

例は次のとおりです。

From: John Doe <[email protected]>
MIME-Version: 1.0
Content-Type: multipart/mixed;
        boundary="XXXXboundary text"

This is a multipart message in MIME format.

--XXXXboundary text 
Content-Type: text/plain

this is the body text


--XXXXboundary text 
Content-Type: text/html

<html>
  ...Body of email in HTML format...
</html>

--XXXXboundary text 
Content-Type: application/zip;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
        filename="test.zip"

BASE64 ENCODING TEXT HERE

--XXXXboundary text--

追加情報:MIMEを使用した電子メールの添付ファイル

質問の源に戻ってどうすればいいですか?私はこのような電子メールを書くのに役立つスタンドアロンツールに慣れていませんが、便利なツールが見つからない場合は驚きます。電子メールクライアントの1つがコマンドライン/一括操作をサポートすることもできます。ただし、最悪の場合はASCIIテキストであるため、HTMLメールと同じ方法で手動で簡単に作成できます。ただし、メッセージをメールエージェントに転送する前に、一時ファイルにメッセージを作成することをお勧めします。 (大量のテキストを簡単に保存するには、こちらの記事を確認してください。)

前述のように、zipファイルをBase 64に変換する必要があります。ほとんどすべてのLinuxインストールには、このbase64ユーティリティまたはそれに対応するツールが必要です。 zipを渡して適切な時間に電子メールファイルに添付するだけです。

base64 test.zip >> my-email-file.txt

おすすめ記事