
Я настроил базовую настройку Postfix для отправки почты с использованием внешнего smtp relayhost и локального разрешения адреса почты через /etc/aliases
. Отправка почты работает (через sendmail
команду) Однако, когда я получаю почту, To:
заголовок отсутствует; он не отображается в необработанном сообщении электронной почты.
Вопрос:Как сделать так, чтобы To:
заголовок отображался в получаемом письме?
Подробнее
Например, когда я отправляю это из командной строки:
echo -e "Subject: test no header\n\nBody message" | sendmail [email protected]
или
echo -e "Subject: test no header\n\nBody message" | sendmail root
с /etc/aliases
наличием линииroot: [email protected]
Я получаю письмо в обоих случаях. Но в обоих случаях заголовка To:
нет.
Необработанное письмо выглядит так:
Return-Path: <[email protected]>
X-Envelope-To: [email protected]
X-Footer: aW5kaWdvbWVkLmNvbQ==
Received: from .....
Received: by ...
Delivered-To: [email protected]
Received: by myhost.mydomain.com (Postfix, from userid 0)
id 70CD8A03; Tue, 12 Jan 2021 14:48:16 +0100 (CET)
Subject: test no header
Message-Id: <[email protected]>
Date: Tue, 12 Jan 2021 14:48:16 +0100 (CET)
From: root <[email protected]>
Body message
Что я уже попробовал:
При отправке почты через
mailx
ВСТАВЛЯЕТСЯ заголовок «Кому», напримерecho -e "Body message" | mailx root -s "Subject: test no header"
Я уже пробовал настраивать
always_add_missing_headers = yes
,/etc/postfix/main.cf
но это не помогает.
Некоторые важные части (я думаю) из моего /etc/postfix/main.cf
файла:
...
append_dot_mydomain = no
...
# General
myhostname = myhost.mydomain.com
myorigin = myhost.mydomain.com
mydestination = $myhostname localhost.$mydomain localhost myhost
...
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
....
relayhost = mail.something.com:465
решение1
To:
Для доставки сообщений по назначению не нужен заголовок. Для этого используется только SMTP-конверт.
В отличие от mailx
инструмента, голая sendmail
команда не является полноценным почтовым клиентом.
Команда sendmail не создаст правильно отформатированное почтовое сообщение, а только минимальный SMTP-конверт для обеспечения успешной передачи. Если вам нужно правильно отформатированное почтовое сообщение, это то, что вам нужно предоставить команде sendmail в качестве (стандартного) ввода.
Другими словами:
Вам необходимо предоставить sendmail сообщение, состоящее из заголовков, каждый заголовок на новой строке с двоеточием, отделяющим заголовок от значения заголовка, с длинными заголовками, продолжающимися на строке ниже и начинающимися с одного или нескольких пробелов. Затем пустая строка, отделяющая заголовки сообщения от тела. Затем тело сообщения.
Что-то вроде этого
To: [email protected]
Content-Type: text/plain; charset=us-ascii>
From: [email protected] (Hermanb)
Subject: A very very long
subject header spanning multiple lines
Date: Tue, 12 Jan 20121 15:46:24 +0200
test test
More test text
.
решение2
Когда я добавляю always_add_missing_headers = yes, у меня это работает