E-mail

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