Jaki jest format przesyłania wiadomości do sendmaila?


22

Korzystam z następującego polecenia, aby tworzyć wiadomości w locie i wysyłać je:

echo "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail email@example.com

Wygląda na to, że kiedy wysyłasz informacje z pliku, robiąc coś takiego:

sendmail email@example.com mail.txt 

Następnie sendmail widzi każdą linię jako nagłówek i analizuje ją. Ale w sposób, w jaki to wysłałem powyżej, wszystko kończy się w temacie.

Jeśli ktoś chce wysłać wiadomość zawierającą nagłówki do sendmaila, jaki jest format? Jak to zrobić?

Odpowiedzi:


24

Twoja echowypowiedź powinna naprawdę nowe linie wyjściowe nie sekwencja \następuje n. Możesz to zrobić, udostępniając -eopcję:

echo -e "Subject:Hello \n\n I would like to buy a hamburger\n" | sendmail email@example.com

Aby zrozumieć, jaka jest różnica, spójrz na dane wyjściowe następujących dwóch poleceń:

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"

1

„Tutaj dokument” w skryptach powłoki (komponujesz nagłówki i treść wiadomości)

#!/bin/sh
TO=email@example.com
/usr/sbin/sendmail -i $TO <<MAIL_END
Subject: Hello
To: $TO

I would like to buy a hamburger
MAIL_END

Treść wiadomości z pliku zewnętrznego

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

HEADERS_END
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.