Show last authors
1 ===Отправка почты из базы данных Oracle===
2
3 * Отправка поты / e-mail из "любой" базы данных Oracle возможна в том случае если на для этой базы данных установлен пакет, **UTL_SMTP**
4 (пакет устанавливается на уровне базы данных - не схемы)
5 * Требуется рабочий почтовый сервер, с или без аутентификации, без SSL шифрования соединения.
6
7 // На данный момент, как я понял, отправка сообщений с шифрованием в наших базах не поддерживается. Но теоретически возможна.
8 // В примере рассмотрен случай для демонстрации самой возможности, по этому, такие узкие места как аутентификация на почтовом сервере, и шифрование SSL опущены.
9
10 =====Как пример, рассмотрим отправку почты из базы данных berezka@clouddev.=====
11
12 * В первую очередь надо убедиться что данный пакет установлен
13
14 (% class="kmcodeblock" style="background-color: rgb(238, 243, 247); overflow: auto; border-width: 1px; border-color: rgb(196, 209, 230); padding: 0.5em; margin-top: 5px; width: 1073px; font-family: 'Courier New', Courier, monospace;" %)
15 SELECT COUNT(*) FROM all_objects WHERE object_name = 'UTL_SMTP' AND object_type = 'PACKAGE';
16
17 * Ожидаемый результат - 1, значит пакет есть, можно пытаться что-то отправить.
18 [[image:10.jpg]]
19
20 * Проверить и убедиться что работает почтовый сервер.
21
22 (% class="kmcodeblock" style="background-color: rgb(238, 243, 247); overflow: auto; border-width: 1px; border-color: rgb(196, 209, 230); padding: 0.5em; margin-top: 5px; width: 1073px; font-family: 'Courier New', Courier, monospace;" %)
23 telnet example.com 25
24
25 [[image:11.jpg]]
26
27 * В случае использования клиента UNA.md, почту можно отправить не сложным кодом прямо из Формы - Просмотр SQL - что по умолчанию присутствует во всех конфигурациях.
28
29 (% class="kmcodeblock" style="background-color: rgb(238, 243, 247); overflow: auto; border-width: 1px; border-color: rgb(196, 209, 230); padding: 0.5em; margin-top: 5px; width: 1073px; font-family: 'Courier New', Courier, monospace;" %)
30 DECLARE
31 mail_conn UTL_SMTP.connection;
32 host VARCHAR2(255) := 'igareosh.com';
33 port NUMBER := 25;
34 BEGIN
35 mail_conn := UTL_SMTP.open_connection(host, port);
36 UTL_SMTP.helo(mail_conn, host);
37 UTL_SMTP.mail(mail_conn, 'ubuntu@igareosh.com');
38 UTL_SMTP.rcpt(mail_conn, 'iplatonov@unisim-soft.com');
39 UTL_SMTP.data(mail_conn,
40 'from: ubuntu@igareosh.com'||UTL_TCP.crlf||'Subject: Test Email Using default Oracle capabilities'||UTL_TCP.crlf||UTL_TCP.crlf||'This is test email about email!');
41 UTL_SMTP.quit(mail_conn);
42 END;
43
44 * В скрине виден сам код, выполняемый в клиенте UNA, и результат его выполнения - подключение и отправка почты почтовым сервером, и получение письма Outlook-ом.
45 // Для мониторинга отправки на почтовом сервере, используется команда:
46 (% class="kmcodeblock" style="background-color: rgb(238, 243, 247); overflow: auto; border-width: 1px; border-color: rgb(196, 209, 230); padding: 0.5em; margin-top: 5px; width: 1073px; font-family: 'Courier New', Courier, monospace;" %)
47 sudo tail -f /var/log/mail.log
48
49 [[image:8.jpg]]
50 ===Отправка почты из пакета схемы клиента.===
51
52 Пакеты сохранены на момент написания и функциональны.
53 // [[PKG_MAIL>>attach:PKGMAIL.pkb]] berezka@clouddev - ex Nivalli ~03.2023
54
55 // [[PKG_MAIL_UTL>>attach:PKGMAIL.pkb]] berezka@clouddev - ex Nivalli ~03.2023
56
57 В качестве решения отправки почты из клиентских схем, используется более менее стандартный пакет, который должен быть у большинства клиентов.
58
59 Пакет со временем улучшался(пакет может отличаться у разных клиентов), были добавлены различные возможности:
60 * сообщения о ошибках,
61 * копии и скрытые копии писем
62 * проверка знаков, пробелов в отправителе, получателе
63 * переписан код чтобы вывести настройку подключения в параметры, и не вбивать эти данные прямо в код.
64 * добавлен джоб
65 * рассылка пачками чтобы не попасть в спам списки.
66 * возможность формировать и отправлять файлы приложения на основании документов. печатные формы.
67
68 // Последняя проверенная версия данных пакетов установлена у клиента Romina используется для ежемесячной рассылки Информации о направленной заработной плате.
69
70 Но далее мы рассматриваем промежуточный вариант, на базе березки:
71 [[image:9.jpg]]
72
73 =====Настройка вводных данных для работы пакета=====
74
75 * В данном случае, прямо в код, надо ввести данные нашего сервера, порт.
76
77 [[image:2.jpg]]
78
79 * Также в случае если мы(почтовый сервер) не используем аутентификацию, эти параметры в пакете надо отключить, потому как с и без аутентификации - разные команды для почтового сервера.
80
81 [[image:1.jpg]]
82
83 * В случае использования пакета **pkg_mail** и **pkg_mail_utl**, в базе, были сделаны доработки, а именно, добавлены две таблицы:
84 ** Первая таблица записывает документы пользователя к отправке/формированию писем
85 ** Вторая используется для хранения сформированных к отправке писем, их статус, адресаты, (в последних версиях еще и ошибок в разрезе каждого письма)
86
87 [[image:12.jpg]]
88
89 * Так как данная база не доработана, в частности, не записывает документы или приложения и не генерирует записи писем к отправке, мы, в качестве примера, записываем данные в таблицу сформированных писем к отправке.
90 (Если клиенту устанавливается подобный модуль, это будет являться частью доработки по автоматизации.)
91 (% class="kmcodeblock" style="background-color: rgb(238, 243, 247); overflow: auto; border-width: 1px; border-color: rgb(196, 209, 230); padding: 0.5em; margin-top: 5px; width: 1073px; font-family: 'Courier New', Courier, monospace;" %)
92 INSERT INTO un9mail_msg (nrmsg, subject, sender, nrdoc, dep, status, text, recipients, cc, bcc)
93 VALUES (4, 'Test email',
94 'ubuntu@igareosh.com',
95 12345,
96 '01',
97 '1',
98 'Dear Team,
99 I am pleased to inform you that our recent implementation of SQL has been a resounding success. The new system has been performing exceptionally well and has greatly improved our data management capabilities.
100 With the use of SQL, we have been able to efficiently retrieve and analyze large sets of data, providing us with valuable insights that we can use to make informed business decisions. The ability to quickly query and manipulate data has significantly reduced the time it takes to generate reports and has streamlined our workflow.
101 Overall, the adoption of SQL has been a game-changer for us and has vastly improved our data-driven decision-making process. We look forward to continuing to use this powerful tool to drive our business forward.
102 Thank you for your attention to this matter.
103 Best regards,
104 Igor',
105 'iplatonov@unisim-soft.com', '', '');
106
107 [[image:3.jpg]]
108
109 * В результате, мы наблюдаем наш INSERT в таблице писем к отправке.
110
111 [[image:4.jpg]]
112
113 * В качестве результата отправки, его регистрации используется поле status, 1 - не отправлено, 2 - отправлено. В более поздних версиях их больше.
114
115 [[image:5.jpg]]
116
117 * В качестве команд к отправке, вызывается пакет pkg_mail_utl в котором содержатся процедуры.
118
119 [[image:13.jpg]]
120
121 * Выполнение пакета
122
123 [[image:6.jpg]]
124
125 * Регистрация Строки/Письма как отправленых.
126
127 [[image:14.jpg]]
128
129 [[Пример настроенного документа рассылки>>E-mail_send]]