ODISendMail vs Jython


Если вам доводилось пользоваться стандартной командой отправки писем ODISendMail, то вы наверное знаете что она реализована на достаточно примитивном уровне, в ней нет возможности указывать кодировку письма, из-за чего часто возникают проблемы с письмами на кириллице, также нет возможности указывать степень важности письма, нет возможности подключатся к SMTP серверу с аутентификацией.

Предлагаю решить эту проблему кардинально, реализовав собственную команду по отправке писем.

Собственную команду можно реализовать, например, с помощью процедуры на встроенном языке Jython.

Процедура это объект несколько схожий с другим объектом ODI, с пакетом (package), в процедуре также можно прописать последовательность действий. Эти действия могут быть либо запросами к базе данных, либо командами к операционной системе, либо какими угодно другими возможными действиями в ODI.Также процедура может быть параметризованна с помощью добавления к ней опций.

C нуля процедуру создавать мы не будем, потому что на My Oracle Support уже есть подобная процедура, её можно взять и немного изменить. Добавим в неё опцию через которую можно будет указывать кодировку письма и опцию для указания важности письма. Для начала скачиваем процедуру с My Oracle Support, распаковываем её во временную папку и потом импортируем в проект.

Далее к существующим опциям добавляет опции необходимые нам.

Итак, в итоге у нас получается следующие набор опции процедуры:

Опция Описание
Host IP адрес сервера через который будет отправлено письмо
Port Порт, на котором запущен SMTP сервер
SMTP Auth С аутентификацией ?
Да
Нет
User Имя пользователя
Password Пароль
To Адрес отправителя
From Адрес получателя
Subject Тема письма
LoadfromFile Признак, загружать текст из файла:
Да
Нет
FilePath Путь к файлу, из которого будет загружен текст письма
MessageText Текст письма (если оно не будет загружено из файла)
Is HTML Форма письма:
HTML
Plain Text
Attachment Вложение в письмо (список файлов разделенных запятой)
Charset Кодировка письма
Priority Важность письма:
1 – Важное письмо
3 – Обычное письмо
5 – Маловажное письмо

Обновленную версию процедуры вы можете скачать здесь:

Изменения в исходники я приводить не буду, кому интересно сможет посмотреть самостоятельно.

Пробуем использовать …

В результате получаем письмо высокой важности в нормальной кодировке …

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s