Настройка предварительных условий пакета UTL_MAIL

Я пытался настроить свою систему на отправку почты с помощью пакета UTL_MAIL, но не повезло. Я прочитал, что мне нужно сначала настроить ACL. поэтому я и сделал. Но даже это не работает.

SELECT * FROM dba_network_acls;

begin
 dbms_network_acl_admin.create_acl (
 acl => 'utl_http.xml',
 description => 'HTTP Access',
 principal => 'HR',
 is_grant => TRUE,
 privilege => 'connect',
 start_date => null,
 end_date => null
 );
 dbms_network_acl_admin.add_privilege (
 acl => 'utl_http.xml',
 principal => 'HR',
 is_grant => TRUE,
 privilege => 'resolve',
 start_date => null,
 end_date => null
 );
 dbms_network_acl_admin.assign_acl (
 acl => 'utl_http.xml',
 host => 'smtp.gmail.com',
 lower_port => 25, --- Gmail SMTP server.
 upper_port => 25
 );
 commit;
end;
/

Я получаю ошибку

ORA-29279: Постоянная ошибка SMTP: 530 5.7.0 Сначала необходимо выполнить команду STARTTLS.ei4sm3659171pbb.42 - gsmtp ORA-06512: по адресу "SYS.UTL_MAIL", строка 654 ORA-06512: по адресу "SYS.UTL_MAIL", строка 671 ORA-06512: по строке 2 29279. 00000 - "Постоянная ошибка SMTP:% s" * Причина: Произошла постоянная ошибка SMTP.* Действие: Исправьте ошибку и повторите операцию SMTP.

Я уже выполнил следующие команды

CONN sys/password AS SYSDBA

@$ ORACLE_HOME/RDBMS/админ /utlmail.sql

@$ ORACLE_HOME/RDBMS/админ /prvtmail.plb

Пожалуйста помоги !

1 ответ

Кажется, что на вашем SMTP-сервере требуется зашифрованное соединение. UTL_MAIL предназначен для упрощения API для отправки почты для базовых SMTP-серверов. Он не поддерживает полный набор параметров, определенных протоколом SMTP. Я не верю, что он поддерживает TLS.

Предполагая, что вы используете 11.2, вам нужно будет использовать пакет UTL_SMTP, и вам нужно будет вызвать функцию STARTTLS во время настройки соединения.

licensed under cc by-sa 3.0 with attribution.