LINUX.ORG.RU

php mail: Не доходят письма с если установлен Return-Path

 ,


0

1

Вернее доходят не всем адресатам. Приблизительно на 30% адресов не доходят письма если установлен заголовок Return-Path

Я его просто убрал. Но не ясно в чем же суть проблемы?

Общий код заголовка таков :

$from = "info@company.com";
$headers  = 'MIME-Version: 1.0'."\r\n";
$headers  = 'Date: Mon, 26 Sep 2023 06:02:25 +0200'."\r\n";
$headers.= 'From: <info@company.com>'."\r\n";
$headers.= 'Reply-To: =?UTF-8?B?Qm9ob21hbGwgSmV3ZWxyeQ==?= <my_email@gmail.com>'."\r\n";
$headers.= 'X-Mailer: PHP/7.4.30'."\r\n";
$headers.= 'Content-Type: multipart/related; boundary="----=_NextPart_134e8657ce4185dc58cfef3fcc997aac"'."\r\n";

И что не так с Reply-To? Может он устарел?

★★

пока ждем цитат из логов, покажи, изменится ли что-то при замене

Reply-To: Bohomall Jewelry <my_email@gmail.com>

на

Reply-To: "Bohomall Jewelry" <my_email@gmail.com>

И вообще, не наводи тень на плетень! Reply-to и Return-path - это два разных заголовка!

https://www.ietf.org/rfc/rfc2822.txt

aol ★★★★★
()
Последнее исправление: aol (всего исправлений: 1)
Ответ на: комментарий от aol

И вообще, не наводи тень на плетень!

Сорян! Это уже исправленный код Я ничего не перепутал! Речь идет именно о Return-Path

Вот изначальный код :

$headers  = 'MIME-Version: 1.0'."\r\n";
$headers  = 'Date: Mon, 26 Sep 2023 06:02:25 +0200'."\r\n";
$headers.= 'From: <info@company.com>'."\r\n";
$headers.= 'Reply-To: =?UTF-8?B?Qm9ob21hbGwgSmV3ZWxyeQ==?= <my_email@gmail.com>'."\r\n";
$headers.= 'Return-Path: info@company.com';
$headers.= 'X-Mailer: PHP/7.4.30'."\r\n";
$headers.= 'Content-Type: multipart/related; boundary="----=_NextPart_134e8657ce4185dc58cfef3fcc997aac"'."\r\n";

Return-Path в принципе идентичен $from

А что должно быть в логах? Ф-ция mail завершается без ошибок. А письмо если в заголовках есть этот Return-Path просто не пришло мне на тестовый ящик

То есть письма с установленным Return-Path просто не приходят на некоторые бесплатные сервисы онлайн почты

Ответки при этом вроде mailer-daemon и т.д. нет никакой

mirek ★★
() автор топика
Ответ на: комментарий от AS

что пишет почтовый сервер?

Письма идут с хостинга с сайтом на OpenCart Просто ф-цией mail

При том там программеры уже задавали OpenCart-у слать через smtp gmail.

Это ничего не дало потому-что OpenCart формировал заголовки точно также

Ошибок нет потому-что mail завершается без ошибок

mirek ★★
() автор топика
Ответ на: комментарий от mirek

То есть письма с установленным Return-Path просто не приходят на некоторые бесплатные сервисы онлайн почты

Если они туда не уходят, в логе твоего почтового сервера будет соответствующая ошибка, плюс он должен сформировать боунс от mailer-daemon. Если они туда уходят, и ты видишь, что тот сервер подтвердил получение сообщения (это в логе твоего напиано), то задавай вопрос ответственным за сервер, который сообщение принял.

AS ★★★★★
()
Ответ на: комментарий от mirek

Ошибок нет потому-что mail завершается без ошибок

Вообще не интересно, как завершается mail(). Интересно, что в логах почтовика. Либо локального, либо того, которому mail() скармливает по smtp (если умеет, я не помню).

AS ★★★★★
()
Ответ на: комментарий от mirek

А где это в панели хостинга? Там нет почтовых логов

Понятия не имею, я стратегией занимаюсь. :-)
Техподдержка может знать наверное. И выясни, как mail() в php работает, через вызов bin/sendmail, или по smtp.

AS ★★★★★
()
Ответ на: комментарий от AS

я стратегией занимаюсь. :-)

Ну а я пирожки пеку )

Еще проще оказалось просто убрать этот Return-Path: Я тестил просто прописав mail в своем файле php

Оно так работает идентично с OpenCart с одинаковым результатом

Но это OpenCart 2 Хотя возможно проблема в том, что там надо было скобки вставить < >

'Return-Path: < info@company.com >'; 

Можно еще поднять OpenCart 4 и глянуть как там mail отправляет

mirek ★★
() автор топика
Последнее исправление: mirek (всего исправлений: 2)
Ответ на: комментарий от mirek

Вообще команда smtp должна выглядеть так: mail from:<info@company.com>. То есть <> обязательны. Но, может, их там потом php mail() добавлять обучен, кто его знает. Потому и нужен лог сервера.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от arto

The «Return-Path» field is added by the mail transport service, at the time of final deliver.

Йо ма е) Это ж стандарт аж 1982 г. И разрабы OpenCart 2 тут не правильно это реализовали

mirek ★★
() автор топика
Последнее исправление: mirek (всего исправлений: 1)
Ответ на: комментарий от cobold

И во второй строчке конкатенации нет.

Стоило бы собирать все заголовки как минимум через join, а ещё лучше было бы воспользоваться какой-то готовой библиотекой.

static_lab ★★★★★
()