Я пытаюсь отправить электронное письмо с sendmail
, но мне нужно указать некоторые заголовки (From, Content-Type, Subject). Вот команда, которую я сейчас выполняю:
echo "Content-Type: text/plain\r\nFrom: do-not-reply@mydomain.com\r\nSubject: Test\r\n\r\nThe body goes here" | sendmail -f do-not-reply@mydomain.com admin@mydomain.com
Проблема в том, что заголовки не устанавливаются. У меня правильный формат?
Вам нужно использовать echo
с параметром 'e'.
-e Enable interpretation of the following backslash-escaped characters in each STRING: \n new line \r carriage return
Если вы посмотрите на результат отправки почты с помощью вашей команды, вы увидите следующее:
Content-Type: text/plain\r\nFrom: do-not-reply@mydomain.com\r\nSubject: Test\r\n\r\nThe body goes here
(Он буквально отображается, как указано выше, как одна строка, включая «специальные символы»)
Применение вышеуказанной небольшой модификации позволяет вашему коду нормально работать:
echo -e "Content-Type: text/plain\r\nFrom: do-not-reply@mydomain.com\r\nSubject: Test\r\n\r\nThe body goes here" | sendmail -f do-not-reply@mydomain.com admin@mydomain.com
Используйте printf
printf "Content-Type: text/plain\r\nFrom: do-not-reply@mydomain.com\r\nSubject: Test\r\n\r\nThe body goes here" | sendmail -f do-not-reply@mydomain.com admin@mydomain.com