Я использую пакет ssmtp для отправки почты через g-mail. С ним все работает отлично - единственная странность в том, что если я отправляю почту через командную строку, поле "кому" выглядит странно.
ssmtp [email protected] < message.txt
По сути, в поле «кому» будет просто указано «нераскрытые получатели».
Я читал, что можно задать заголовки, содержащие поле «Кому:», но это кажется слишком сложным, поскольку я использовал эту mail
команду в других системах. Она делает это автоматически.
Есть ли более простой способ отправки почты через командную строку ssmtp
, но без необходимости изменять приведенный выше синтаксис или указывать дополнительные параметры? (возможно, файл конфигурации для установки адреса «кому» в соответствии с указанным).
решение1
Эта ситуация происходит из-за непонимания того, что ssmtp
происходит. Существует очень важное различие между сообщениемконверт(которые почтовые серверы используют для маршрутизации почты) и сообщениетело(который отображается в вашем почтовом клиенте). Оба могут иметь To
и From
, и они могут отличаться друг от друга. Этохорошо!
ssmtp
просто создает конверт и облегчает передачу сообщения в MTA. Он ожидает, что тело, которому вы его передаете, полностью сформировано исодержат все заголовки тела. Он не добавит ничего для вас*, (хотя он вставит заголовки обработки сообщений, например, , и т. д.). Я уверен, вы также заметили, что с этими сообщениями Received-by
также нет .Subject:
Таким образом, ответ на ваш вопрос заключается в том, что To:
поле необходимо включить в message.txt
.
Чтобы поля To:
и Subject:
отображались, вам нужно отформатировать их message.txt
следующим образом:
To: [email protected]
Subject: Message for you
Message text starts here.
blah blah blah.
*Это не совсем так. Поскольку From:
заголовок — единственный требуемый заголовок, он будет извлечен из конверта и вставлен, если он отсутствует.