Как я могу отформатировать файл, чтобы я мог просто сделать cat file | sendmail?

Поставив Subject: This is the subject , мне не нужно указывать тему в sendmail, но добавление поля To: myemail@hostname.com дает мне Recipient names must be specified

2 ответа2

2

Вы пропускаете различие между содержимым сообщения (заголовки и тело) и конвертом сообщения. Вы вызываете sendmail с содержимым сообщения, но не предоставляете конверт. Это конверт, который контролирует доставку. Без этого сообщение не может никуда идти.

Вы не говорите, какую команду sendmail вы используете. У каждого МТС - Sendmail, qmail, Postfix, exim и т.д. - есть свои. Общее подмножество их всех имеет всего два способа указания отправителя и получателя конверта:

  • явно в командной строке в качестве аргументов для sendmail:
    <файл sendmail -f Стивен.Morad@example.org postmaster @ localhost
  • неявно в теле сообщения, которое анализируется для заголовков To: Cc: и Bcc:::
    <файл sendmail -f Стивен.Morad@example.org -t

Это общее подмножество очень ограничено. Обратите внимание, например, на то, что этот режим отправки сообщений из стандартных аргументов ввода и команд является режимом Sendmail -bm , но на самом деле не все программы sendmail даже поддерживают параметр -bm . Поэтому для переноса этого режима вы не можете использовать эту опцию.

Существуют также предостережения относительно переносимости при объединении -t с получателями, указанными в качестве аргументов команды, подробности о которых см. В книге Дэйва Силла. Так что выбирайте одну форму или другую. Не смешивайте их.

дальнейшее чтение

1

По умолчанию sendmail ожидает, что получатели будут указаны в командной строке. Используйте -t чтобы прочитать заголовки To: Cc: Bcc: .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .