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 позволяет использовать отложенное исполнение вызовов.