Вы пропускаете различие между содержимым сообщения (заголовки и тело) и конвертом сообщения. Вы вызываете sendmail с содержимым сообщения, но не предоставляете конверт. Это конверт, который контролирует доставку. Без этого сообщение не может никуда идти.
Вы не говорите, какую команду sendmail вы используете. У каждого МТС - Sendmail, qmail, Postfix, exim и т.д. - есть свои. Общее подмножество их всех имеет всего два способа указания отправителя и получателя конверта:
Это общее подмножество очень ограничено. Обратите внимание, например, на то, что этот режим отправки сообщений из стандартных аргументов ввода и команд является режимом Sendmail -bm , но на самом деле не все программы sendmail даже поддерживают параметр -bm . Поэтому для переноса этого режима вы не можете использовать эту опцию.
Существуют также предостережения относительно переносимости при объединении -t с получателями, указанными в качестве аргументов команды, подробности о которых см. В книге Дэйва Силла. Так что выбирайте одну форму или другую. Не смешивайте их.
дальнейшее чтение