, Как добавить Дату: заголовок к полученным электронным письмам без повреждения подписи DKIM

Это некорректная обработка openssls SIGPIPE . head , а также dd закроют трубу, когда получат свои 5 МБ. Это вызывает ошибку EPIPE в системном вызове write () , когда процесс openssl пытается записать в канал:

 EPIPE fd подключен к каналу или сокету, чтение которого заканчивается закрыто. Когда это 
происходит, процесс записи также получит сигнал SIGPIPE. 
 

openssl затем умер из-за сигнала, а не завершился обычным образом.Вы можете проверить это в своем примере, используя:

$ openssl enc -aes-256-ctr -pass pass:password -nosalt < /dev/zero | head -c 5M >file
error writing output file
$ echo ${PIPESTATUS[@]}
1 0

Массив $ PIPESTATUS содержит значения выхода процессов внутри каналов. Вы видите, что процесс openssl завершился с кодом выхода 1.


Однако, чтобы преодолеть эту ошибку, используйте head или dd перед openssl в конвейере:

$ head -c 5M /dev/zero | openssl enc -aes-256-ctr -pass pass:password -nosalt >file
$ echo ${PIPESTATUS[@]}
0 0
1
08.09.2018, 09:09
1 ответ

На самом деле не имеет значения, что ваш сервер использует DKIM. Подпись DKIM добавляется отправителем, и для ее создания требуется закрытый ключ отправителя.

В рамках подписания DKIM почтовый сервер отправителя берет некоторые заголовки, обычно включая заголовок Date, объединяет их и криптографически подписывает результат. Если вы измените любой из этих заголовков или добавите тот, которого не было, вы измените составную строку, и подпись станет недействительной.

Почта, которую вы показываете, не подписана DKIM.

Краткая версия: :Вы не можете делать то, о чем просите.

1
27.01.2020, 23:42

Теги

Похожие вопросы