Web - Функция mail в php. Отправляем сообщение - PRCY⮭net
Работа с функцией mail в php - отправка сообщений по средствам php-скрипта.

Для отправки электронной почты используется функция mail (), которая имеет следующий вид:

boolean mail(to, subject, body [extra])

У функции четыре параметра, три из которых являются обязательными: адрес электронной почты получателя сообщения. Если необходимо направить письмо нескольким получателям, то их адреса должны быть перечислены в строке через запятую;

1. тема письма;
2. текст сообщения;
3. дополнительные заголовки сообщения.

Предыдущие параметры позволяют задать только основные свойства письма, но их ведь намного больше.
Дополнительные свойства указываются в последнем параметре и разделяются символами конца строки и перевода каретки (CR и LF).

m a i l ( )

Пример отправки почты

<?php
// Подготовка переменных
$MailTo = "recipient@mail_server.com";
$MailSubj = "Это тема сообщения";
$MailFrom = "your_name@your_server.com";
$MailCC = "namel@@mail_server.com,name2@@mail_server.com";
$Extra = "From: $MailFrom\r\nCc: $MailCC";
// Отправка почты
if(mail($MailTo, $MailSubj, "Тело сообщения", $Extra))
print('Сообщение для $MailTo удачно отправлено1);
else
print('Ошибка);

Все гениальное просто, и в отправке сообщений абсолютно ничего сложного нет.

Если вы создаете систему рассылки новостей, то перед вами может возникнуть одна серьезная проблема: если список большой, то рассылка может занять слишком много времени. Если выполнение сценария не уложится в 30 секунд (это значение установлено в качестве максимума по умолчанию), то его работа будет прервана. На практике оказывается, что при списке рассылки в 1000 записей 30 секунд не хватает, поэтому необходимо увеличить время выполнения сценария.

Изменять конфигурацию интерпретатора в данном случае будет не очень хорошим решением. Если тайм-аут слишком большой, то в системе может оказаться много зациклившихся сценариев, которые будут расходовать процессорное время. Лучшим вариантом будет увеличить тайм-аут для опреде-ленного сценария. Для этого можно воспользоваться функцией set_time_out(), которой передается новое значение тайм-аута в секундах для текущего сценария. Следующий пример устанавливает тайм-аут в 10 минут:

set_time_out(600)

Но слишком большой список рассылки приводит и к еще одной проблеме: рассылка новостей — занятие не из легких, потому что помимо процессорных ресурсов требуются и сетевые. В результате производительность сервера может серьезно упасть. Все ресурсы вряд ли вам удастся израсходовать, ведь ОС Unix и Windows являются многозадачными, то есть могут выполнять несколько задач одновременно, но производительность обработки Web-запросов может упасть.

Если ваш сценарий должен регулярно рассылать электронные почтовые сообщения по большому списку, то можно вынести рассылку на отдельный сервер. В определенный момент времени специально предназначенный сервер для рассылки забирает список пользователей или получает его с помощью запроса к базе данных и непосредственно рассылает сообщения.
Information
  • Posted on 27.04.2013 13:46
  • Просмотры: 1307