Подтвердить что ты не робот

Проблема с php mail Заголовок "From"

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

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

<?php
$to = "[email protected]";
$subject = "Test mail";
$message = "Hello! \nThis is a simple email message.";

$headers = "From: [email protected]";
$headers .= "\r\nReply-To: [email protected]";
$headers .= "\r\nX-Mailer: PHP/".phpversion();

mail($to,$subject,$message,$headers);

echo "Mail Sent.";
?> 

проблема заключается в том, что при доставке почты заголовок from остается [email protected], в то время как ответ-to изменяется на указанное значение.

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

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

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

4b9b3361

Ответ 1

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

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

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

mail($to,$subject,$message,$headers,"-f [email protected]");

Ответ 2

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

Статья 206.


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

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

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

От: [email protected]
От: "пользователь" < [email protected] >

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

От: "[email protected]"
От: user @domain.com
От: [email protected] < [email protected] >

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

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

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

Ответ 3

У меня была такая же проблема, я проверил сайт 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 должен быть в двойных кавычках (") сам, одинарные кавычки (') не будут работать.

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

$header = 'From: XXXXXXXX <[email protected]>' . "\r\n";

Ответ 7

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

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

С.

Ответ 8

Заголовки

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

 $header = 'From: ShopFive <[email protected]>' . "\r\n";