Материал из Eludia.
API Eludia содержит весьма гибкую функцию send_mail, которая позволяет рассылать по протоколу SMTP текстовые или HTML-сообщения, в том числе с файловыми вложениями. В отличие от многих аналогов, в Eludia отсылка одного сообщения – это всегда ровно один вызов функции. В качестве получателя (опция to) можно указывать как адреса e-mail, так и ссылки на хэши с компонентами label и mail. Если адрес окажется положительным числом, то он будет заменён на запись с соответствующим номером из таблицы users. А если в качестве адресата указана ссылка на список, то сообщение бытет разослано на каждый из адресов-элементов.
Как и все функции Eludia, связанные с внешним ПО, send_mail определяет параметры подключения из переменной $preconf, задаваемой для каждого экземпляра приложения в файле conf/httpd.conf. Для рассылки почты необходимо вписать в этот файл следующий фрагмент:
mail => {
host => 'mail.that.we.trust.com',
user => 'smtp_login',
password => 'smtp_p@s$WorD',
options => {Debug => 1}, # см. Net::SMTP
from => {
address => 'me@our.company.ru',
label => 'Robot',
}
},
Опция from определяет адрес, от имени которого будет рассылаться почта. Если установлена аналогичная опция to, то на указанный в ней адрес будут передаваться все сообщения с данной инсталляции приложения. Мы настоятельно рекомендуем настраивать именно таким образом все тестовые экземпляры: тогда вы сможете спокойно отлаживать веерные рассылки по копии рабочей БД, не вызывая изумлённых вопросов со стороны пользователей.
mail => {
host => 'localhost',
from => {
address => 'me@our.company.ru',
label => 'Robot',
},
to => {
address => 'me@our.company.ru',
label => 'Human',
},
options => {Debug => 1},
defer => 1,
},
Параметр options передаётся Net::SMTP. В частности, опция Debug распечатывает в STDERR диалог между приложением и SMTP-сервером.
Опция defer позволяет использовать отложенное исполнение вызовов.
