[ | ]

25-10-2009, 20:40-Khromov-WM 
Рубрика: PHP

Работа с функцией 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-запросов может упасть.

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

 (голосов: 0)

Просмотров: 409     Версия для печати

Гости
Зарегистрирован: --,
ICQ: --
#1: DreaMinder (26 октября 2009 19:38)

Блин, если бы статья появилась на денек раньше...

 

Была олимпиада по веб-дизайну, дали задание с таким пунктом: сделать обратную связь с админом... пол часа втирал училке, что для этого нужен сервак апаче.

 

Но я бы с удовольствием впихнул бы этот код если бы запомнил.

 

Спасибо за статью! надеюсь в будущем поможет...






Включите эту картинку для отображения кода безопасности
обновить если не виден код