аватар Автор: Сергей Касаткин | 24 марта 2013 11:54

Статьи / PHP /

Функция отправки писем mail() PHP


Содержание статьи


1. Отправка письма mail PHP Тип text/plain
2. Отправка письма mail PHP Тип text/html
3. Как использовать CSS в письме? (для mail PHP)

1. Отправка письма mail php Тип text/plain


Содержит только текст (малый вес сообщения)

<?php
$name = "Пётр Петрович"; // необязательная переменная в качестве примера вставки в сообщение

$subject = "Тема сообщения"; //тема сообщения
$message = "Здравствуйте,".$name."!\n
Просто спросить как дела!\n
С уважением, Иван Иванович";//содержание сообщения
mail($email, $subject, $message, "From: yournick@yourmail.ru\nReply-To: secondnick@yourmail.ru\nContent-type:text/plain; Charset=utf-8\r\n"); //отправляем сообщение
?>


2. Отправка письма mail php Тип text/html


Могут содержать графические html-элементы, сслыки и тп.
Больше объём передаваемой информации

<?php
// отправка нескольким адресатам
$to  = 'friend1@yourmail.ru' . ', '; // кому отправляем
$to .= 'friend2@yourmail.ru' . ', '; // Внимание! Так пишем второй и тд адреса
// не забываем запятую. Даже в последнем контакте лишней не будет
// Для начинающих! $to .= точка в этом случае для Дописывания в переменную 

// содержание письма
$subject = "Тема сообщения";
$message = '
<html>
    <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Тема страницы</title>
    </head>
    <body>
        <p>А здесь ваше сообщение</p>
    </body>
</html>';

// устанавливаем тип сообщения Content-type, если хотим
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= "Content-type: text/html; charset=utf-8 \r\n";

// дополнительные данные
$headers .= "From: yournick <yournick@yourmail.ru>\r\n"; // от кого
$headers .= 'Cc: secondnick@example.com' . "\r\n"; // копия сообщения на этот адрес
$headers .= "Bcc: yournick-archive@yourmail.ru\r\n"; // скрытая копия сообщения на этот
mail($to, $subject, $message, $headers);
?>


3. Как использовать в письме CSS?


Тут я хочу сразу немного огорчить Вас - CSS в привычном для Вас виде не стоит использовать. Mail, Yandex, Google, Outlook - выкидывают стили из писем. Однако, есть выход.

Выполним несколько условий:
1) Надеюсь не нужно пояснять, что используем Content-type: text/html

2) Вспоминаем, что такое table вёрстска. Теперь все стили вписываем только в неё. Можно также вспомнить center, font.

<table width="50%" align="center" style="background-color:lightskyblue; -webkit-border-radius:15px; -moz-border-radius:15px; border-radius:15px; box-shadow: 0 0 5px black; box-shadow: 0 0 10px rgba(0,0,0,0.5); -moz-box-shadow: 0 0 10px rgba(0,0,0,0.5); -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.5); padding:20px; font-size:1em">
<tr><td>От кого: Иванов Иван Иванович</td></tr>
<tr><td>Адрес: example@example.ru</td></tr>
<tr><td>Сообщение: Смотрим и радуемся</td></tr></table>

С div то же самое

<div style="text-align: center; color: blue;">Нужный Вам текст<div>

3) В примере выше с отправкой письма приводилась данная строка. Так вот её не забываем

$headers  = 'MIME-Version: 1.0' . "\r\n";


4) Используем HTML 3.2. Вставляем в начало html письма.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

5) В качестве background - можно цвет. Хотите фон-изображение - тогда делайте весь текст и фон изображением. Как вариант: можно указать background-image для body.

6) У единственной в ячейке картинки в Gmail появляется 3px отступ снизу, чтобы избежать этого указываем ей

style="display:block";
 



Похожие статьи


Комментарии к статье (vk.com)