проблема с php mail Заголовок «From»

Я создаю веб-сайт, который отправляет и отправляет электронное письмо пользователю, когда он регистрируется.

Мой код (суть его):

<?php $to = "helloworld@gmail.com"; $subject = "Test mail"; $message = "Hello! \nThis is a simple email message."; $headers = "From: munged@gmail.com"; $headers .= "\r\nReply-To: munged@gmail.com"; $headers .= "\r\nX-Mailer: PHP/".phpversion(); mail($to,$subject,$message,$headers); echo "Mail Sent."; ?> 

проблема в том, что при доставке почты заголовок from остается munged@box123.bluehost.com , в то время как ответ-to изменяется на указанное значение.

box123.bluehost.com – это имя хоста сервера, на котором размещен веб-сайт.

Так что я делаю неправильно? Что я могу сделать, чтобы получить адрес «От» так же, как адрес ответа?

Является ли это чем-то, что я делаю неправильно, или веб-хост играет фол?

Изменить: я просто заметил, что вы пытаетесь использовать адрес gmail как значение from. Это не сработает , и интернет-провайдер прав, переписывая его. Если вы хотите перенаправить ответы на ваши исходящие сообщения, используйте reply-to .

Обходной путь для действительных адресов, который работает со многими интернет-провайдерами:

попробуйте добавить пятый параметр в команду mail() :

 mail($to,$subject,$message,$headers,"-f your@email.here"); 

Оказывается, на сервере оригинального плаката (blueHost) есть FAQ по этому самому вопросу .

Статья 206.


Это связано с тем, что наши серверы требуют от вас (или вашего скрипта) использовать правильно отформатированное, действительное поле From: в заголовке электронной почты. Если поле From: не отформатировано правильно, пусто или адрес электронной почты не существует в cPanel, адрес From: будет изменен на username@box###.bluehost.com .

Вы должны изменить скрипт, который используете, чтобы правильно использовать допустимый From: header.

Примеры заголовков, которые должны работать:

От: user@domain.com
От: «пользователь» <user@domain.com>

Примеры заголовков, которые НЕ будут работать:

От: "user@domain.com"
От: user @ domain.com
От: user@domain.com <user@domain.com>

Наши серверы не будут принимать имя для адреса электронной почты, и адрес электронной почты будет таким же. Он не будет принимать двойное объявление адреса электронной почты.

Для сценариев, таких как Joomla и WordPress, вам нужно будет следовать их документации для правильного форматирования полей. Для WordPress потребуется плагин Mail From.

Примечание. Адрес электронной почты, который вы используете, должен быть действительной созданной учетной записью в cPanel.

У меня была такая же проблема, я проверил сайт php.net. И нашел правильный формат.
Это мой обновленный код.

 $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'From: ' . $fromName . ' <' . $fromEmail .'>' . " \r\n" . 'Reply-To: '. $fromEmail . "\r\n" . 'X-Mailer: PHP/' . phpversion(); 

\ R \ n должно быть в двойных кавычках (") , одиночные кавычки (') не будут работать.

Чтобы предотвратить фишинг, некоторые почтовые серверы не позволяют переписывать From.

Я понимаю, что это старый поток, но у меня была такая же проблема, так как вчера я перешел на bluehost. Возможно, это был не отобранный ответ, но я поддерживаю ответ на статью 206.

Я создал действительное письмо на панели управления и использовал его как адрес From, и он сработал.

Я решил это, добавив учетные записи электронной почты в Cpanel, а также добавив, что тот же адрес электронной почты в заголовке из поля, как этот

 $header = 'From: XXXXXXXX <test@test.org>' . "\r\n"; 

Веб-хост на самом деле не играет фол. Это не строго согласно правилам – но по сравнению с некоторыми из удивительных изобретений, предназначенных для предотвращения спама, это не особенно плохо.

Если вы действительно хотите отправить почту с '@ gmail.com', почему бы просто не использовать службу SMTP gmail? Если вы не можете перенастроить сервер, на котором работает PHP, тогда есть много средств для работы с почтовыми обложками, которые позволяют вам указать настраиваемые SMTP-реле phpmailer springs.

C.

заголовки не работали для меня на моем общем хостинге, причина в том, что я использовал мой горячий адрес электронной почты в заголовке. я создал электронную почту на моем cpanel, и я установил тот же адрес электронной почты в заголовке, да, он работал как шарм!

  $header = 'From: ShopFive <site@mysite.org>' . "\r\n";