@VoRoN1999

Как отправить письмо?

Добрый вечер.
Как через функцию mail в php отправить HTML письмо, но чтоб сам HTML код был в отдельном файле и в этом файле просто подставляются переменные с данными. Примерно как на yii2.
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
/* получатели */
$to= "Mary <mary@example.com>" . ", " ; //обратите внимание на запятую
$to .= "Kelly <kelly@example.com>";

/* тема/subject */
$subject = "Birthday Reminders for August";

// Предопределенные переменные,
// для e-mail сообщения
$email_vars = array(
    'name' => $_POST['name'],
    'message' => ($_POST['message']) ? $_POST['message'] : '—',
    'phone' => $_POST['phone'],
    'utm_source' => $_POST['utm_source'],
    'utm_medium' => $_POST['utm_medium'],
    'utm_campaign' => $_POST['utm_campaign'],
);

$message = file_get_contents('templates/mail.question.html'); // Шаблон письма

// Заменяем все наши переменные на данные
if(isset($email_vars)){
    foreach($email_vars as $k=>$v){
        $message = str_replace('{'.$k.'}', $v, $message);
    }
}
/* Для отправки HTML-почты вы можете установить шапку Content-type. */
$headers= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* дополнительные шапки */
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";
$headers .= "Cc: birthdayarchive@example.com\r\n";
$headers .= "Bcc: birthdaycheck@example.com\r\n";

/* и теперь отправим из */
mail($to, $subject, $message, $headers);


В файле шаблона вставляете переменные такого вида: {phone} , {name} итд
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы