перепробувавши багато порад, я нарешті звернувся до цієї спільноти і сподіваюся отримати певні вказівки.
Я намагаюся надсилати електронні листи з PL / SQL і створив екземпляр 18c XE на RHL 7.2; свіжа установка, нічого додатково не встановлено.
Якщо дотримуватися всіх інструкцій по створенню гаманця, орапки можуть прочитати його без проблем.
дисплей гаманця orapki -wallet / opt / oracle / product / 18c / dbhomeXE / owm / гаманці / root
Випуск інструменту Oracle PKI 18.0.0.0.0 - Виробництво
18.1.0.0.0: Версія {1}
Авторські права (c) 2004, 2017, Oracle und / oder der verbundenen Unternehmen. Всі права захищені. Alle Rechte vorbehalten.
Запитані сертифікати:
Тема: xxxxxxxxxxxxxxxxxxxxxxxxx
Сертифікати користувача:
Довірені сертифікати:
Тема: CN = account.google.com, O = Google LLC, L = Mountain View, ST = Каліфорнія, C = США
Тема: CN = GlobalSign, O = GlobalSign, OU = GlobalSign Root CA - R2
Тема: CN = Google Internet Authority G3, O = Служби Google Trust, C = США
Зсередини Oracle я отримую повідомлення:
ORA-28759: Fehler beim Öffnen von Datei (файл помилки при відкритті)
ORA-06512: у "SYS.UTL_TCP", Zeile 63
ORA-06512: у "SYS.UTL_TCP", Zeile 314
ORA-06512: у "SYS.UTL_SMTP", Zeile 177
ORA-06512: у "SYS.UTL_SMTP", Zeile 201
ORA-06512: "xxxxxxxxx.QM_SEND_MAIL", Zeile 14 (моя процедура у рядку 14)
моя збережена процедура виглядає приблизно так:
створити або замінити PROCEDURE qm_send_mail (
p_from VARCHAR2,
p_to VARCHAR2,
p_subject VARCHAR2,
p_body VARCHAR2
) IS
objconnection utl_smtp.connection;
vrdata VARCHAR2(32000);
v_plain_string VARCHAR2(32000);
v_username_b64 VARCHAR2(32000);
v_password_b64 VARCHAR2(32000);
BEGIN
objconnection := utl_smtp.open_connection( host => 'smtp.googlemail.com',
port => 587,--global.g_smtp_port_ssl,
wallet_path => 'file:/opt/oracle/product/18c/dbhomeXE/owm/wallets/root',
--wallet_password => 'xxxxxxxxx',
secure_connection_before_smtp => true);
utl_smtp.ehlo(objconnection, 'fritzquinum.dnsalias.com'); -- Must use EHLO vs HELO
utl_smtp.starttls(objconnection);
utl_smtp.auth(objconnection, 'mygooglemailaccount', 'mygooglemailpassword', utl_smtp.all_schemes);
utl_smtp.mail(objconnection, p_from);
utl_smtp.rcpt(objconnection, p_to);
utl_smtp.open_data(objconnection);
/ * ** Надсилання інформації заголовка * /
utl_smtp.write_data(objconnection, 'From: '
|| p_from
|| utl_tcp.crlf);
utl_smtp.write_data(objconnection, 'To: '
|| p_to
|| utl_tcp.crlf);
utl_smtp.write_data(objconnection, 'p_subjectject: '
|| p_subject
|| utl_tcp.crlf);
utl_smtp.write_data(objconnection, 'MIME-Version: '
|| '1.0'
|| utl_tcp.crlf);
utl_smtp.write_data(objconnection, 'Content-Type: ' || 'text/html;');
utl_smtp.write_data(objconnection, 'Content-Transfer-Encoding: '
|| '"8Bit"'
|| utl_tcp.crlf);
utl_smtp.write_data(objconnection, utl_tcp.crlf);
utl_smtp.write_data(objconnection, utl_tcp.crlf || '');
utl_smtp.write_data(objconnection, utl_tcp.crlf || '');
utl_smtp.write_data(objconnection, utl_tcp.crlf
|| '<span style="color: black; font-family: Courier New;">'
|| p_body
|| '</span>');
utl_smtp.write_data(objconnection, utl_tcp.crlf || '');
utl_smtp.write_data(objconnection, utl_tcp.crlf || '');
utl_smtp.close_data(objconnection);
utl_smtp.quit(objconnection);
- ВИКЛЮЧЕННЯ
WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN
utl_smtp.quit(objconnection);
dbms_output.put_line(sqlerrm);
WHEN OTHERS THEN
utl_smtp.quit(objconnection);
dbms_output.put_line(sqlerrm);
END qm_send_mail;
Як хтось зазначав, що права на папку потрібно встановити, я змінив, щоб перевірити, чи дозволяють файли права власності на це:
[root @ core wallet] # ls -la
insgesamt 12
drwx ------. 3 головний корінь 79 2. Січень 15:20.
drwxr-xr-x. 5 oracle oinstall 48 2. січ 14:42.
drwxrwxrwx. 2 root oinstall 90 2. Jan 15:05 root
[root @ core гаманці] # cd root
[root @ core root] # ls -la
insgesamt 16
drwxrwxrwx. 2 кореневої установки 90 2. Січ 15:05.
drwx ------. 3 головний корінь 79 2. Січень 15:20 ..
-rwxrwxrwx. 1 корінь oinstall 5893 2. січ 15:38 cwallet.sso
-rwxrwxrwx. 1 root oinstall 0 2. січ 15:05 cwallet.sso.lck
-rwxrwxrwx. 1 корінь oinstall 5848 2. січ 15:38 ewallet.p12
-rwxrwxrwx. 1 root oinstall 0 2. січ 14:48 ewallet.p12.lck
всі файли належать oinstall, як рекомендовано; досі oracle не може прочитати гаманець.
Гаманець створений за допомогою функції автоматичного входу; тому я спробував встановити параметр wallet_password, а не встановити; без різниці.
Мережеве підключення до googlemail нормально.
Будь-які ідеї, будь ласка?
З повагою і дякую за будь-яку допомогу тут ...
Клаус