Как отправить HTML-письмо с изображениями

 

После подтверждения получения сообщения, отправленного пользователю в виде страницы на экране, осталось создать сообщение на e-mail администратора о поступившем новом обращении. Это сообщение отправляется непосредственно с сайта, используя возможности, предоставляемые хостингом (если вы будете размещать сайт в интернете, проверьте, есть ли подобные услуги у вашего провайдера).

Для создания сообщения используются разные варианты, можно даже составить красиво оформленные письма. Ниже приведён код простого письма с простым текстом.

  77    // ОТПРАВКА СООБЩЕНИЯ НА e-mail О НОВОМ ОБРАЩЕНИИ 
  78    $config = JFactory::getConfig();
  79    $email_address = $config->get('replyto');
  80    $email_address_from = $config->get('mailfrom');
  81    if (!($email_address == NULL)) {
  82    $to = $email_address; // адрес "Кому"
  83    $subject = 'Новое обращение';                     // тема
  84    $message =                                                       // сообщение:
  85         '<html>
  86              <head>
  87                   <title>Новое обращение</title>
  88              </head>
  89              <body>
  90                   <p>На сайт <span style="color: blue; font-weight: bold;">WDS.ru</span> поступило новое  обращение.'<br> 
  91    От пользователя: ' . $name . '<br>
  92    E-mail: ' . $eml . '<br>
  93    Тема обращения: ' . $type_mess . '<br>
  94    Содержание: ' . $text_mess . '
  95              </body>
  96         </html>
  97    '; 
  98    // Заголовки сообщения 
  99    $headers = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=iso-8859-1' . "\r\n" . 'From:' . $email_address_from . "\r\n" . 'Reply-To:' . $email_address  . "\r\n" . 'X-Mailer: PHP/' . phpversion();
 100   mail($to, $subject, $message, $headers); // Отправка сообщения
 101   }

В строке 78 переменная $config получает массив данных из файла конфигурации сайта configuration.php. Далее в строке 79 переменная $email_address получает значение ключа 'replyto'. Это значение является адресом, на который будут отправляться письма для администратора. Строка 80 получает значение ключа 'mailfrom', который является адресом отправителя (адресом сайта).

 Для того, что бы вы смогли получать письма с уведомлениями, откройте административную панель, в меню выберите Система > Общие настройки > Сервер (вкладка) и в разделе Настройки почты в поле Отправить на e-mail введите адрес, на который вы хотите получать уведомления.

В строке 81 конструкция if проверяет наличие адреса в переменной. Если адреса нет, то код отправки (строки 82 - 101) игнорируется.

В строке 82 переменной $to присваивается адрес администратора, на который должно поступить письмо. В строке 83 переменной присваивается содержимое поля "Тема".

В строке 84 начинается создание самого сообщения (присваивается переменной $message). Обратите внимание: всё сообщение, включая все его теги, заключено в одинарные кавычки (строка 85 и строка 97). Внутри них находится обычный HTML-код со стандартным оформлением (теги <html>, заголовок <head> и <body>).

В 99 строке указаны заголовки письма. В заголовке From укажите адрес "от кого", в заголовке Reply-To - куда прислать ответ.

Строка 100 отправляет письмо с сайта пользователю (в данном случае - администратору).

 

Как отправить HTML-письмо с изображениями

Выше был рассмотрен код для отправки простого письма, содержащего только небольшой текст. Но как можно отправить письмо с изображением, например, с логотипом сайта, фотографией и так далее? 

Если просто вставить дополнительную строку с тегом <img> ничего не получится - изображение не дойдёт до адресата. Нужен более серьёзный HTML-код. В этом случае вместо кода, содержащегося в одинарных скобках (строки 85-97) нужно вставить следующее:

  1   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2   <html xmlns="http://www.w3.org/1999/xhtml">
  3       <head>
  4           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5           <title>Заголовок вашего сообщения</title>
  6            <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7       </head>
  8       <body>
  9           <p><img src="https://ваш_сайт.рф/images/изображение.jpg" width="300" height="200" alt="Альтернативный текст"></p>
10         <p>Текст вашего сообщения</p>
11      </body>
12  </html>

Не забудьте, что этот текст должен находиться внутри одинарных кавычек!

В девятой строке укажите полный адрес к изображению на вашем сайте, его реальные размеры и альтернативный текст. В пятой строке пропишите заголовок вашего сообщения, а в 10 - основной текст.

-------

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

 

Добавлять комментарии и ответы могут только пользователи, прошедшие регистрацию!
Зарегистрируйтесь и напишите своё мнение или ответ!