テキストにsendmailとhtmlの形式に問題があります。

テキストにsendmailとhtmlの形式に問題があります。

UnixはHTML形式の2つの添付ファイルとタイトルを含むメールを送信する必要があります。

次のようにしましたが、添付ファイルを取得するのに役立ちましたが、メッセージの本文の内容は取得できませんでした。

#!/bin/bash
from="[email protected]"
to="[email protected]"
subject="Status"
boundary="ZZ_/afg6432dfgkl.94531q"
body="mail_body.txt"
attachments=( "FiC.txt" "FiE.txt")

# Build headers
{

printf '%s\n' "From: $from
To: $to
Subject: $subject
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary=\"$boundary\"

--${boundary}
Content-Type: text/plain; charset=\"US-ASCII\"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

cat $body
"

for file in "${attachments[@]}"; do

  [ ! -f "$file" ] && echo "Warning: attachment $file not found, skipping" >&2 && continue

 #mimetype=$(get_mimetype "$file") 

  printf '%s\n' "--${boundary}
Content-Type: text/html
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"$file\"
"

  base64 "$file"
  echo
done

printf '%s\n' "--${boundary}--"

} | /usr/sbin/sendmail -t -oi 

mail_body.txtの内容:

   echo "<html>
        <head>
        <title> Status</title>
        </head>
        "

メール本文のHTMLコンテンツを印刷するのに役立ちますか?

答え1

printf '%s\n' "...
猫の体

これ印刷注文するcat。そうではない走るそれ。

フォーマット仕様で使用する場合は、\n引用符で囲んだ改行文字と1つの大きな文字列を使用しないことをお勧めします。

Content-Type: text/plain; charset=\"US-ASCII\"

明らかに指定された本文部分はtext/plainそのように解釈されませんtext/html。ファイルの内容(指定どおり)は最初はHTMLではありません。

関連情報