Статический метод :send
Отправка сообщения по электронной почте.
^mail:send[сообщение]
Метод отправляет сообщение на заданный адрес электронной почты. Можно указать несколько адресов через запятую.
Пример
^mail:send[
$.from[Вася <vasya@hotmail.ru>]
$.to[Петя <petya@hotmail.ru>]
$.subject[как дела]
$.text[Как у тебя дела? У меня — изумительно!]
]
В результате будет отправлено сообщение для petya@hotmail.ru с содержимым «Как у тебя дела? У меня — изумительно!»
сообщение — хеш, в котором могут быть заданы такие ключи:
- поле_заголовка
- text
- html
- file
- charset
- options
- print-debug [3.4.0]
charset — если задан этот ключ, то заголовок и текстовые блоки сообщения будут перекодированы в указанную кодировку. По умолчанию сообщение отправляется в кодировке, заданной в $request:charset (т. е. не перекодируется).
Пример
$.charset[koi8-r]
options — эти опции будут переданы в командную строку программе sendmail (только под UNIX).
print-debug — при указании этой опции письмо не будет отправлено, вместо этого будет выведен полный сформированный текст письма, что может быть удобно при отладке сложных HTML-писем.
Также можно задать все поля заголовка сообщения, передав их значение в таком виде (короткая форма):
$.поле_заголовка[строка]
или с параметрами (полная форма):
$.поле_заголовка[
$.value[строка]
$.параметр[строка]
]
Примеры
$.from[Вася <vasya@hotmail.ru>]
$.to[Петя <petya@hotmail.ru>]
$.subject[Как у тебя дела? У меня — изумительно!]
$.x-mailer[Parser 3]
Кроме заголовка, можно передать один или оба текстовых блока: text, html, а также любое количество блоков file и message (см. ниже). Если будут переданы оба текстовых блока, будет сформирована секция MULTIPART/ALTERNATIVE, при прочтении полученного сообщения современные почтовые клиенты покажут HTML, а устаревшие — простой текст.
Короткая форма:
$.text[строка]
Полная форма:
$.text[
$.value[строка]
$.поле_заголовка[значение]
]
…где value — значение тестового блока, предусмотрена возможность задать все поля заголовка сообщения, передав их в хеше, как у сообщение (см. выше).
Можно не передавать заголовок content-type, он будет сформирован автоматически. Этот заголовок не влияет на перекодирование, а влияет только на ту кодировку, в которой почтовый клиент будет отображать сообщение.
Отправка HTML. Короткая форма:
$.html{строка}
Полная форма:
$.html[
$.value{строка}
$.поле_заголовка[значение]
]
Фигурные скобки нужны для переключения вида преобразования по умолчанию на HTML.
Вложение файла. Короткая форма:
$.file[файл]
Полная форма:
$.file[
$.value[файл]
$.name[имя_файла]
$.content-id[XYZ]
$.format[uue|base64]
$.поле_заголовка[значение]
]
Файл — объект класса file, который будет прикреплен к сообщению. MIME-тип данных (content-type заголовок части) определяется по таблице MIME-TYPES (см. Конфигурационный метод).
Имя_файла — имя, под которым файл будет передан.
По умолчанию файл будет передан в формате uuencode (uue) до версии 3.4.0 и в формате base64, начиная с версии 3.4.0.
Вложение сообщения:
$.message[сообщение]
Формат сообщения такой же, как у параметра всего метода.
Вложений может быть несколько, для чего после имени следует добавить целое число. Пример:
$.file
$.file2
$.message
$.message2
Пример с альтернативными блоками и вложениями:
^mail:send[
$.from[Вася <vasya@hotmail.ru>]
$.to[Петя <petya@hotmail.ru>]
$.subject[как дела]
$.text[Как у тебя дела? У меня изумительно!]
$.html{
Как у тебя дела? У меня <b>изумительно</b>!<br>
<img src="cid:pic2" width="100" height="50">
}
$.file[^file::load[binary;perfect_life1.jpg]]
$.file2[
$.value[^file::load[binary;perfect_life2.jpg]]
$.name[изумительная_жизнь2.jpg]
$.content-id[pic2]
]
]
В результате будет отправлено сообщение для petya@hotmail.ru с содержимым «Как у тебя дела? У меня — изумительно!» в простом тексте и HTML. Сообщение будет содержать два изображения: perfect_life1.jpg — в виде аттачмента и perfect_life2.jpg — в теле письма.