api.mail Отправка сообщений

Нельзя отправить письмо на адрес, который используется для подключения к серверу входящей почты.

Отправка сообщения

  • api.mail.sender.send (email, title, subject, message)

    api.mail.sender.send (email, title, subject, message, contentType)

    Отправка текстового сообщения одному получателю с учетом транзакции (сообщения отправляются, только если транзакция будет зафиксирована).

    Параметры метода:

    • email — email, на который будет отправляться сообщение. String.
    • title — имя получателя. String.
    • subject — тема сообщения.
    • message — содержание сообщения.
    • contentType — тип сообщения, может быть "text/plain" или "text/html".
  • api.mail.sender.send (['email1' :'title1', 'email2' : 'title2'], subject, message)

    api.mail.sender.send (['email1' :'title1', 'email2' : 'title2'], subject, message, contentType)

    Отправка текстового сообщения нескольким получателям с учетом транзакции (сообщения отправляются, только если транзакция будет зафиксирована).

    Параметры метода:

    • ['email1' :'title1', 'email2' : 'title2'] — ассоциативный массив: ключ — email-адрес, на который будет отправляться сообщение, значение — имя получателя.
    • subject — тема сообщения.
    • message — содержание сообщения.
    • contentType — тип сообщения, может быть "text/plain" или "text/html".
  • api.mail.simpleSender.send(email, title, subject, message)

    api.mail.simpleSender.send(email, title, subject, message, contentType)

    Отправка текстового сообщения одному получателю вне контекста транзакции.

  • api.mail.simpleSender.send(['email1' :'title1', 'email2' : 'title2'], subject, message)

    api.mail.simpleSender.send(['email1' :'title1', 'email2' : 'title2'], subject, message, contentType)

    Отправка текстового сообщения нескольким получателям вне контекста транзакции.

Создание и отправка сообщения

Создание и отправка сообщения с подключением по умолчанию

  • api.mail.sender.sendMail(message)

    Отправка сообщения с сервера исходящей почты по умолчанию.

    Параметр метода:

    • message — содержание сообщения.
  • api.mail.sender.createMail()

    Создание объекта почтового сообщения c предзаполненными полями "От кого (from)[имя, email]", "кодировка", "флаг транслитерации заголовка". Данные берутся из подключения по умолчанию.

  • Параметры почтового сообщения:

    • message.addTo('name recipient', 'email recipient')

      Добавляет получателя (поле письма "Кому").

    • message.addCc(name recipient', 'email recipient')

      Добавляет получателя копии.

    • message.addBcc(name recipient', 'email recipient')

      Добавляет получателя скрытой копии.

    • message.addReplyTo('name', 'reply-to email')

      Добавляет адрес replyTo.

    • message.setFrom('name addresser', 'email addresser')

      Задает адрес отправителя.

    • message.setSubject('theme')

      Устанавливает тему отправляемого сообщения.

    • message.setText('body')

      Устанавливает текст отправляемого сообщения.

    • message.setHeader(headerName, headerValue)

      Устанавливает заголовок отправляемого сообщения.

    • message.addText('\n\nsignature')

      Дописывает текст в конец тела сообщения.

    • message.contentType = 'text/plain'

      Задает тип содержимого письма.

Пример. Создание и отправка сообщения с подключением по умолчанию:

Copy
def message = api.mail.sender.createMail() 
message.addTo('Имя получателя №1', 'address1@mail.com')  //добавление получателя (поле письма "Кому")
message.addCc('Имя получателя №2', 'address2@mail.com')  // добавление получателя в копию
message.addBcc('Имя получателя №3', 'address3@mail.com') //добавление получателя в скрытую копию
message.addReplyTo('Имя', 'reply-to@mail.com') //добавление адреса replyTo
message.setFrom('Имя отправителя', 'from@mail.com') //добавление адреса отправителя
message.setSubject('Тема сообщения') // тема сообщения
message.setText('Тело сообщения') //текст сообщения
message.addText('\n\nПодпись') //добавление текста в конец тела сообщения
message.contentType = 'text/plain' // тип содержимого письма
message.setHeader('In-Reply-To', '52D635DD.90108@naumen.ru')// добавление/редактирование заголовка сообщения 
def file = ... // системный объект класса "Файл" (file)
def source = utils.getFileDataSource(file) // получение источника данных для объекта file
message.attachFile(source) // прикрепление файла к сообщению (также можно прикрепить два и более файлов)
def replyMessage = api.mail.createMessageResponse(message, "reply text");
 api.mail.sender.sendMail(message) //отправка созданного сообщения

Создание и отправка сообщения с заданным подключением

  • api.mail.sender.sendMail(message, connection)

    Отправка сообщения с конкретного сервера исходящей почты.

    В качестве второго параметра принимает идентификатор исходящего подключения, из которого будет отправлено переданное письмо. Если передан некорректный идентификатор, то будет выбрано подключение по умолчанию. Если в сообщении ранее не были заполнены поля: "От кого(from)[имя, email]", "кодировка" и "флаг транслитерации заголовка", то они будут заполнены значениями из выбранного исходящего подключения.

    Для использования данного метода рекомендуется создавать письмо с помощью api.mail.sender.createEmptyMail().

    Параметры метода:

    • message — содержание сообщения;
    • connection — идентификатор подключения исходящей почты, который можно посмотреть в адресной строке на карточке подключения:

      https://naumen.ru/sd/admin/#out-mail-server:9f23688c-c4ca-4a3e-8b60-c92401f710ef

      Значение параметра не влияет на from и reply to письма.

  • аpi.mail.sender.createEmptyMail()

    Создание объекта пустого почтового сообщения, не содержащего предзаполненных полей. Альтернатива методу api.mail.sender.createMail().

    Созданное сообщение может быть отправлено через подключение, отличное от подключения по умолчанию. В отличии от сообщения, созданного методом api.mail.sender.createMail(), поля "От кого(from)[имя, email]", "кодировка" и "флаг транслитерации заголовка" заполняются данными из выбранного подключения.

    Если при отправке подключение не было выбрано явно, т.е. отправка осуществлялась через api.mail.sender.sendMail(message), то будут взяты данные из подключения по умолчанию.

Пример. Создание и отправка сообщения с заданным подключением:

Copy
//ВАЖНО: для корректной отправки сообщения с указанием подключения сообщение должно быть создано через api.mail.sender.createEmptyMail():
def message = api.mail.sender.createEmptyMail()
message.addTo('example', 'example@example.com')
message.setSubject('Example subject')
message.setText('Example')
api.mail.sender.sendMail(message, '9e3f62fe-6ce5-4acd-a85e-f292f96c0f5f')