Проблема с почтовым сообщением PHP

#php #email

#php #Адрес электронной почты

Вопрос:

Когда я пытаюсь отправлять простые электронные письма, подобные этому:

 $email = 'example@mail.com';
$message = 'Hello.';
$headers  = 'MIME-Version: 1.0' . "rn";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "rn";
$headers .= 'From: Example - No Reply <noreply@email.com>' . "rn";
mail($email,'Test',$message,$headers);
 

Они работают совершенно нормально, но когда я пытаюсь отправить более сложное сообщение, оно просто не может этого сделать :

 $message = "<p>Thank you for registering with our system. In order to use it we need you to visit the following link:<br />
<a href='http://www.example.com/activate.php?q=$activation_link'>http://www.example.com/activate.php</a>
</p>"
 

Я нахожу это довольно интересным. Возможно ли, что на моем хосте (iPage) есть какие-то фильтры, которые этого не позволяют? (Что абсурдно) Или это ошибка с моей стороны?

Комментарии:

1. Может быть, HTML отключает спам-фильтры

2. есть ли у вас какая-либо ошибка или что вы неправильно поняли в msg?

3. Вы получаете какие-либо ошибки при запуске кода php? Если нет, проверьте почтовые журналы в системе, чтобы узнать, было ли принято письмо.

4. @RakeshSharma Нет, журналы ошибок пусты

5. Сбой вашей почтовой программы (и вы это подтвердили) или электронное письмо не пришло. Просто для информации, если вы тестируете hotmail, вы можете забыть, что ваша почта дошла до адресата (в большинстве случаев). У HddnTHA есть решение, они работают великолепно и просты в использовании. github.com/PHPMailer/PHPMailer

Ответ №1:

Хорошо, это стало довольно очевидным после дополнительного тестирования. Я могу отправлять все электронные письма, если исключу свое доменное имя, что довольно странно.

Возможно, что мой фильтр hosts улавливает это. Придется посмотреть, что с ними не так.