#php #html #email
#php #HTML #Адрес электронной почты
Вопрос:
Извините, кто-нибудь может помочь, пожалуйста?
У нас был некоторый PHP-код, который отправил по электронной почте человеку, спрашивающему о наших услугах на нашем веб-сайте. Электронное письмо, используемое для отправки стандартного ответа электронной почты на запрос, отформатированный в HTML. Но где-то в июне 2020 года, хотя мы не могли видеть, что были внесены какие-либо изменения, электронные письма начали отправляться без формата HTML и в основном показывать HTML-код.
Ниже приведена часть кода PHP, которая создает электронное письмо, но я не вижу в этом ничего плохого. Итак, если с приведенным ниже кодом нет проблем, что может привести к внезапному сбою кода и изменению ответных писем, которые работали в HTML, чтобы начать отправку в виде HTML-кода? (или что-то не так с кодом, который я не вижу?)
Любая помощь, указания или идеи будут очень признательны.
$email_from = 'example@example.co.uk';//<== update the email address
$email_subject = "Thank You for making enquiry";
$email_body = '<!DOCTYPE html>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous">
<link href="https://fonts.googleapis.com/css?family=Crimson Text" rel="stylesheet">
<html>
<head>
<title></title>
</head>
<body>
EMAIL CONTENT WILL GO HERE!
</body>
</html>';
$to = $EnquiryEmailAddress;//<== update the email address
// Always set content-type when sending HTML email
$headers = 'MIME-Version: 1.0' . "rn";
$headers .= 'Content-type:text/html;charset=ISO-8859-1' . "rn";
$headers .= "From: $email_from rn";
$headers .= "Reply-To: $email_from rn";
mail($to,$email_subject,$email_body,$headers);
Комментарии:
1. Что
error
вы получаете?error.log
также проверьте файл2. Вы не можете использовать обычный HTML в emails.en.m.wikipedia.org/wiki/HTML_email
3. Спасибо за информацию. Я не могу найти error.log. Электронное письмо все еще отправляется, и ошибка не появляется, оно только что потеряло все свое форматирование HTML (которое ранее работало) и отображалось, и теперь электронные письма отображают полный HTML-код как часть электронного письма.
Ответ №1:
Этот код зависит от правильной настройки исходящей электронной почты сервера. В PHP встроен почтовый процессор, называемый PHPMailer. Я рекомендую вам взглянуть на этот пакет, он вам очень поможет. Вы можете прочитать об этом здесь: https://github.com/PHPMailer/PHPMailer
Во-вторых, я рекомендую вам кодировать свои электронные письма в формате UTF-8 вместо использования ISO-8859-1 (если это возможно).
Кроме того, если ваш e запускает команду отправки почты во время отображения веб-страницы, команда отправки почты может занять некоторое время. Хорошим подходом является пакетное отправление электронной почты, когда пользователи не ожидают отображения веб-страницы. Это можно сделать, например, сохранив все исходящие электронные письма в таблице базы данных, и заставить пакетный процессор обрабатывать эту таблицу и отправлять электронные письма последовательно.
Наконец, как упоминалось в комментарии к вашему вопросу: помните, что HTML в электронных письмах очень ограничен, поэтому вы должны быть осторожны при создании HTML-кода электронной почты.
Удачи!
Комментарии:
1. Спасибо за вашу помощь. Я собираюсь заглянуть в PHPMailer. Нашел мини-учебник, поэтому попытаюсь разобраться с этим, чтобы посмотреть, смогу ли я заставить его работать. Просто немного странно, что код оставался неизменным в течение последнего года или около того, и в середине года просто перестал работать (просто пытаюсь все исправить с тех пор, как ушел наш последний разработчик). Думаю, вы правы, что что-то должно произойти в отношении нашего привязанного сервера, я поговорю с нашим ИТ-менеджером. Еще раз спасибо.