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