Служба хостинга моих клиентов не принимает электронные письма, отправленные с веб-сайта, которые не имеют «-f» в начале адреса FROM. Это связано с недавним добавлением спам-фильтра, который они добавили.
Официальный ответ:
В «конверте отправителей данных» отсутствуют определенные элементы
Я использую phpmailer, до сих пор все работало нормально, используя SMTP-аутентификацию.
Но теперь с phpmailer, это не работает
$mail->From = '[email protected]';
Также не работает
$mail->From = '-f [email protected]';
Очевидно, что это недействительный адрес электронной почты.
Я МОГУ получить почту, чтобы на самом деле отправить вот так:
mail('[email protected]', 'the subject', 'the message', null, '-f [email protected]');
Но это не phpmailer, это функция php для садового сорта. Поэтому я пытаюсь заставить PHPmailer каким-то образом автоматически добавлять «-f» в FROM.
Должен ли я корректировать файлы классов, чтобы как-то обойти это? Застрял!
Вы перепутали свои транспорты. -f
в mail()
Функция — это дополнительный параметр, передаваемый в базовый двоичный файл sendmail, который устанавливает отправителя конверта сообщения (и официально у него не должно быть пробела после него, например, [email protected]
). Тем не менее, он не применяется при отправке через SMTP, потому что вы получаете контроль над этим параметром с помощью Sender
имущество. Вы должны сделать это:
$mail->Sender = '[email protected]';
Если вы отправляете с использованием SMTP, он будет использовать его как отправителя конверта (как содержимое SMTP MAIL FROM
команда), и если вы отправляете через isMail()
или же isSendmail()
транспорты, он установит отправителя через свойство -f.
Также убедитесь, что вы используете последнюю версию PHPMailer от GitHub.
Других решений пока нет …