將訊息傳送到 sendmail 的格式是什麼?

將訊息傳送到 sendmail 的格式是什麼?

我使用以下命令動態建立訊息並發送它們:

echo "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail [email protected]

似乎當您從文件發送訊息時,可以透過執行以下操作:

sendmail [email protected] mail.txt 

然後 sendmail 將每一行視為標頭,並對其進行解析。但按照我上面發送的方式,所有內容最終都在主題行中。

如果想將帶有標頭的訊息回顯到 sendmail 中,那麼格式是什麼?如何做到這一點?

答案1

您的語句實際上應該輸出換行符,而不是後面跟著的echo序列。您可以透過提供以下選項來做到這一點:\n-e

echo -e "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail [email protected]

要了解有何區別,請查看以下兩個命令的輸出:

echo "Subject:Hello \n\n I would like to buy a hamburger\n"
echo -e "Subject:Hello \n\n I would like to buy a hamburger\n"

答案2

shell 腳本中的「此處文件」(您編寫訊息標題和正文)

#!/bin/sh
[email protected]
/usr/sbin/sendmail -i $TO <<MAIL_END
Subject: Hello
To: $TO

I would like to buy a hamburger
MAIL_END

來自外部文件的訊息正文

#!/bin/sh
[email protected]
BODY_FILE=mail.txt
(cat - $BODY_FILE)<<HEADERS_END | /usr/sbin/sendmail -i $TO
Subject: Hello
To: $TO

HEADERS_END

相關內容