Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Отправка письма с помощью Utl_Smtp  [new]
Сергей из Самары
Member

Откуда:
Сообщений: 217
Доброе утро!

Никогда раньше не приходилось работать с этим пакетом, но возникла необходимость. Задача достаточно примитивная: выполняется некая процедура и по ней формируется лог, который пишется в файл. Теперь нужно на почту отправить этот файл.

Делаю так:
CREATE OR REPLACE Function Fsend_Mail_file(Msg_To      Varchar2, --E-mail получателя.
                                      Msg_Subject Varchar2, --Тема.
                                      Msg_Text    Varchar2, -----------Текст.
                                      att_file    bfile
                                      ) Return Varchar2 Is
  boundary CONSTANT varchar2(78) := '-------5e9i1BxFQrgl19c0gs90-------';
  encapsulation_boundary CONSTANT varchar2(78) := '--'||boundary;
  final_boundary CONSTANT varchar2(78) := '--'||boundary||'--';
  crlf CONSTANT varchar2(2) := chr(13)||chr(10);
  
  c        Utl_Smtp.Connection;
  Msg_From Varchar2(50) := '<didenco@minfin-samara.ru>'; --Адрес отправителья
  Mailhost Varchar2(30) := '192.168.0.210'; ------------IP адрес
  pos      PLS_INTEGER := 1;
  
  file_length PLS_INTEGER;
  diralias    Varchar2(30);
  bfile_filename Varchar2(512);
  b_att_file bfile;
  
  Procedure Send_Header(Name In Varchar2, Header In Varchar2) As
  Begin
    Utl_Smtp.Write_Data(c, Name || ': ' || Header || Utl_Tcp.Crlf);
  End;
  
  Procedure WriteDate(str In Varchar2, crlfs in pls_integer default 1) As
  Begin
    Utl_Smtp.Write_Data(c, str||rpad(crlf,2*crlfs,crlf));
  End;
  
Begin
  b_att_file:= att_file;
  c := Utl_Smtp.Open_Connection(Mailhost, 25); --SMTP on port 25
  
  Utl_Smtp.Helo(c, Mailhost); --Handshaking.
  
  utl_smtp.command(c, 'AUTH LOGIN');
  utl_smtp.command(c, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw('didenco'))));
  utl_smtp.command(c, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw('sewer'))));
  
  Utl_Smtp.Mail(c, Msg_From); --E-mail отправителя.
  Utl_Smtp.Rcpt(c, Msg_To); --e-mail получателя.

  Utl_Smtp.Open_Data(c);
  
  WriteDate('Date: '||TO_CHAR(SYSTIMESTAMP,'Dy, DD.MM.YYYY HH24:MI:SS TZHTZM')||crlf
              ||'MIME-Version: 1-0'||crlf
              ||'From: '||'no-reply <didenco@minfin-samara.ru>'||crlf
              ||'Subject: '||subj_encode(nvl(Msg_Subject,'(no subject)'))||crlf
              ||'To: '||'<' || Msg_To || '>'||crlf
              ||'Content-Type: multipart/mixed; boudary="'||boundary||'"',2);
  
  WriteDate(encapsulation_boundary);
  WriteDate('Content-Type: text/plain; charset="windows-1251"; format=flowed');
  WriteDate('Content-Transfer-Encoding: 8bit',2);

  utl_smtp.write_raw_data(c, utl_raw.cast_to_raw(convert(Msg_Text,'CL8MSWIN1251')));
  
  DBMS_LOB.fileopen(b_att_file, DBMS_LOB.lob_readonly);
  file_length:= DBMS_LOB.getlength(att_file);
  
  DBMS_LOB.filegetname(b_att_file,diralias,bfile_filename);
  
  WriteDate(encapsulation_boundary);
  
  WriteDate('Content-Type: application/x-gzip; name="'||bfile_filename||'"');
  WriteDate('Content-Transfer-Encoding: base64');
  WriteDate('Content-Disposition: attachement; filename="'||bfile_filename||'"',2);
  While pos < file_length
  LOOP
    WriteDate(utl_raw.cast_to_varchar2(utl_encode.base64_encode(
                                    DBMS_LOB.substr(b_att_file,23829,pos))),0);
    pos:= pos+23829;
  END LOOP;
  WriteDate(crlf||crlf||final_boundary);
  
  Utl_Smtp.Close_Data(c);
  Utl_Smtp.Quit(c);
  DBMS_LOB.close(b_att_file);
  Return 'OK';
Exception
  When Others Then
    Return 'NO';
End;


В результате отработки функции приходить следующее письмо:

---------5e9i1BxFQrgl19c0gs90-------
Content-Type: text/plain; charset="windows-1251"; format=flowed
Content-Transfer-Encoding: 8bit

бЕЯМЮ ОПХУНДХР Х СУНДХР---------5e9i1BxFQrgl19c0gs90-------
Content-Type: application/x-gzip; name="20190815_150558.log"
Content-Transfer-Encoding: base64
Content-Disposition: attachement; filename="20190815_150558.log"

ztDDwM3Ix8DWyN8NCsjNzTogNjMxNzEzNzI5MS4gysLR0DogNzc3DQrK7uQ6IDc3
NzAyDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KzuHw4OHu8urg
OiDX5fDi/+ru4uAgw+Dr6O3gIMDt4PLu6/zl4u3gLiDE6PDl6vLu8A0KSUQgdXNl
ciDiIERCVVNFUjogNTg0NDQ3NjUwDQrL7uPo7SDiIERCVVNFUjogQ0hFUlZZQUtP
VkFfNzc3MDJfREUkDQoNCsvu4+jtIOIgREJVU0VSIOjx7/AuICh1ZF9pZCA8PiAt
MSk6IENIRVJWWUFLT1ZBXzc3NzAyDQrD8PPv7/sg8yDv7uv85+7i4PLl6/8g7vfo
+eXt+y4NCg0Kwvvk4O3t++Ug7/Dg4uA6DQogICAgICAgICAqIDzPwdFfwNFfwf7k
5uXyPiAtINHu8vDz5O3o6uggz8HRLCDw4OHu8uD++ejlIOIgwNEgwf7k5uXyDQog
ICAgICAgICAqIDzD0MHRX9DB0V/PwdFfztM+IC0gz+7r/Ofu4uDy5evoIMPQwdEs
INDB0Swgz8HRLCDv5fDl+OXk+Oj1IO3gIO7h8evz5uji4O3o6CDiINbBICjA0SDB
/uTm5fIg6CDT0MwpDQogICAgICAgICAqIDzIy1/D0MHRX9DB0V/PwdFfwf7k5uXy
PiAtINHu8vDz5O3o6uggw9DB0Swg0MHRLiDw4OHu8uD++ej1IOIgwNEgIsH+5Obl
8iIsIPPv7uvt7uzu9+Xt7fvlIO3gIPDg4e7y8yDxIMjx7+7r7ejy5ev87fvs6CDr
6PHy4OzoDQogICAgICAgICAqIDzD0MHRX8jx8j4gLSDR7vLw8+Tt6OroIMPQwdEg
KMzT1CwgzOjtyOzz+SksIPDg4e7y4P756OUg8SDk7urz7OXt8uDs6CDv7iDo8fLu
9+3o6u7i7ukg6uvg8fHo9Ojq4Pbo6A0KICAgICAgICAgKiA8z8HRXzc3NzAyPiAt
INHu8vDz5O3o6uggz8HRIPEgy9EgMjE3MDEwMDIwICjW08jBwCkNCiAgICAgICAg
ICogPN3PX8/u5O/o8fwxPiAtINHu8vDz5O3o6uggw9DB0Swg0MHRLCDPwdEsIPEg
7/Dg4u7sIO/l8OLu6SDv7uTv6PHoIPHu4+vg8e3uIOrg8PLu9+rlIO7h8ODn9u7i
IO/u5O/o8eXpDQogICAgICAgICAqIDzCyuDw8u736uXP7uTv6PHl6T4gLSDP7uv8
5+7i4PLl6+gg7eD17uT/+ejl8f8g4iDq4PDy7vfq5SDv7uTv6PHl6SAo5Ov/IOru
7fLw7uv/IOvl4vv1IN3PIO/w6CDu8u/w4OLq5SDk7urz7OXt8u7iKQ0KDQrRxdDS
yNTIysDS2w0Kwuvg5OXr5fY6INfF0MLfys7CwCDDwMvIzcAgwM3A0s7L3MXCzcAN
CtHl8PLo9Ojq4PIg5Ov/IOTg7e3u4+4g7+7r/Ofu4uDy5ev/IOIg8uDh6+j25SBD
RVJUIO3lIO3g6eTl7Q0KDQrP7uv85+7i4PLl6/wg18XQwt/KzsLAIMPAy8jNwCDA
zcDSzsvcxcLNwCAg7eDp5OXtIOIg4eDn5SBNSU5CQVNFDQrL7uPo7SDiIE1JTkJB
U0U6IENIRVJWWUFLT1ZBXzc3NzAyDQoNCk9SQUNMRQ0KxODy4CDx7ufk4O3o/yDv
4PDu6/86IDE1LjA4LjIwMTkgMDk6NTA6MTMNCg0KDQrR9O7w7Ojw7uLg7fsg5ODt
7fvlIOIg5+D/4urlLg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KzuHw
4OHu8urgOiDS8/Dj5e3l4uAgzODw6O3gIM/l8vDu4u3gLiDC5eTz+ejpIOHz9ePg
6/Ll8A0KSUQgdXNlciDiIERCVVNFUjogNTg0NDUzNzM5DQrL7uPo7SDiIERCVVNF
UjogVFVSR0VORVZBXzc3NzAyX0RFJA0KDQrL7uPo7SDiIERCVVNFUiDo8e/wLiAo
dWRfaWQgPD4gLTEpOiBUVVJHRU5FVkFfNzc3MDINCsPw8+/v+yDzIO/u6/zn7uLg
8uXr/yDu9+j55e37Lg0KDQrC++Tg7e375SDv8ODi4DoNCiAgICAgICAgICogPM/B
0V/A0V/B/uTm5fI+IC0g0e7y8PPk7ejq6CDPwdEsIPDg4e7y4P756OUg4iDA0SDB
/uTm5fINCiAgICAgICAgICogPMPQwdFf0MHRX8/B0V/O0z4gLSDP7uv85+7i4PLl
6+ggw9DB0Swg0MHRLCDPwdEsIO/l8OX45eT46PUg7eAg7uHx6/Pm6OLg7ejoIOIg
1sEgKMDRIMH+5Obl8iDoINPQzCkNCiAgICAgICAgICogPM/B0V83NzcwMj4gLSDR
7vLw8+Tt6OroIM/B0SDxIMvRIDIxNzAxMDAyMCAo1tPIwcApDQoNCs/w4OLgIO3g
IP3r5ery8O7t7fP+IO/u5O/o8fwg7eUg5+D/4uvl7fsNCs/u6/zn7uLg8uXr/CDS
09DDxc3FwsAgzMDQyM3AIM/F0tDOws3AICDt4Onk5e0g4iDh4OflIE1JTkJBU0UN
Csvu4+jtIOIgTUlOQkFTRTogVFVSR0VORVZBXzc3NzAyDQoNCk9SQUNMRQ0KxODy
4CDx7ufk4O3o/yDv4PDu6/86IDE1LjA4LjIwMTkgMTI6Mjc6NDYNCg0KDQrR9O7w
7Ojw7uLg7fsg5ODt7fvlIOIg5+D/4urlLg0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KzuHw4OHu8urgOiDP7vXr5eHq6O0g3vDo6SDN6Oru6+Dl4uj3LiAx
Lekg5+Ds5fHy6PLl6/wg5Ojw5ery7vDgLSDD6+Di7fvpIOHz9ePg6/Ll8A0KSUQg
dXNlciDiIERCVVNFUjogNTg0MTM4OTc1DQrL7uPo7SDiIERCVVNFUjogUE9ITEVC
S0lOXzc3NzAyX0RFJA0KDQrL7uPo7SDiIERCVVNFUiDo8e/wLiAodWRfaWQgPD4g
LTEpOiBQT0hMRUJLSU5fNzc3MDINCsPw8+/v+yDzIO/u6/zn7uLg8uXr/yDu9+j5
5e37Lg0KDQrC++Tg7e375SDv8ODi4DoNCiAgICAgICAgICogPM/B0V/A0V/B/uTm
5fI+IC0g0e7y8PPk7ejq6CDPwdEsIPDg4e7y4P756OUg4iDA0SDB/uTm5fINCiAg
ICAgICAgICogPMPQwdFf0MHRX8/B0V/O0z4gLSDP7uv85+7i4PLl6+ggw9DB0Swg
0MHRLCDPwdEsIO/l8OX45eT46PUg7eAg7uHx6/Pm6OLg7ejoIOIg1sEgKMDRIMH+
5Obl8iDoINPQzCkNCiAgICAgICAgICogPMjLX8PQwdFf0MHRX8/B0V/B/uTm5fI+
IC0g0e7y8PPk7ejq6CDD0MHRLCDQwdEuIPDg4e7y4P756PUg4iDA0SAiwf7k5uXy
Iiwg8+/u6+3u7O735e3t++Ug7eAg8ODh7vLzIPEgyPHv7uvt6PLl6/zt++zoIOvo
8fLg7OgNCiAgICAgICAgICogPMPQwdFfyPHyPiAtINHu8vDz5O3o6uggw9DB0SAo
zNPULCDM6O3I7PP5KSwg8ODh7vLg/vno5SDxIOTu6vPs5e3y4OzoIO/uIOjx8u73
7ejq7uLu6SDq6+Dx8ej06Org9ujoDQogICAgICAgICAqIDzPwdFfNzc3MDI+IC0g
0e7y8PPk7ejq6CDPwdEg8SDL0SAyMTcwMTAwMjAgKNbTyMHAKQ0KICAgICAgICAg
KiA83c9fz+7k7+jx/DI+IC0g0e7y8PPk7ejq6CDD0MHRLCDQwdEsIM/B0Swg1tPI
wcAgKOrg6iDu4fHr8+bo4uD++eXj7iDz9/Dl5uTl7ej/KSDxIO/w4OLu7CDi8u7w
7ukg7+7k7+jx6CDx7uPr4PHt7iDq4PDy7vfq5SDu4fDg5/bu4iDv7uTv6PHl6Q0K
ICAgICAgICAgKiA8wsrg8PLu9+rlz+7k7+jx5ek+IC0gz+7r/Ofu4uDy5evoIO3g
9e7k//no5fH/IOIg6uDw8u736uUg7+7k7+jx5ekgKOTr/yDq7u3y8O7r/yDr5eL7
9SDdzyDv8Ogg7vLv8ODi6uUg5O7q8+zl7fLu4ikNCg0K0cXQ0sjUyMrA0tsNCsLr
4OTl6+X2OiDPztXLxcHKyM0g3tDIySDNyMrOy8DFwsjXDQrR5fDy6PTo6uDyOiAw
MjAwQUNBOUQ5QkVENDdDODVFOTExOERCQTRCMkM5NzlFDQrE4PLgIO3g9+Dr4CDk
5enx8uLo/yDx5fDy6PTo6uDy4DogMDkuMDguMjAxOSAwMDowMDowMA0KxODy4CDu
6u7t9+Dt6P8g5OXp8fLi6P8g8eXw8uj06Org8uA6IDA5LjA4LjIwMjAgMDA6MDA6
MDANCs7w4+Dt6Ofg9uj/OiDDytMg0c4NCg0Kz+7r/Ofu4uDy5ev8IM/O1cvFwcrI
zSDe0MjJIM3Iys7LwMXCyNcgIO3g6eTl7SDiIOHg5+UgTUlOQkFTRQ0Ky+7j6O0g
4iBNSU5CQVNFOiBQT0hMRUJLSU5fNzc3MDINCg0KT1JBQ0xFDQrE4PLgIPHu5+Tg
7ej/IO/g8O7r/zogMTUuMDguMjAxOSAxMDoxNjozMg0KDQoNCtH07vDs6PDu4uDt
+yDk4O3t++Ug4iDn4P/i6uUuDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQrO4fDg4e7y6uA6IMv78eDq7uLx6uD/IMXq4PLl8Ojt4CDA8PLz8O7i7eAuIMLl
5PP56Okg4fP14+Dr8uXwDQpJRCB1c2VyIOIgREJVU0VSOiA1ODQ0NTkzMzcNCsvu
4+jtIOIgREJVU0VSOiBMWVNBS09WU0tBWUFfNzc3MDJfREUkDQoNCsvu4+jtIOIg
REJVU0VSIOjx7/AuICh1ZF9pZCA8PiAtMSk6IExZU0FLT1ZTS0FZQV83NzcwMg0K
w/Dz7+/7IPMg7+7r/Ofu4uDy5ev/IO736Pnl7fsuDQoNCsL75ODt7fvlIO/w4OLg
Og0KICAgICAgICAgKiA8z8HRX8DRX8H+5Obl8j4gLSDR7vLw8+Tt6OroIM/B0Swg
8ODh7vLg/vno5SDiIMDRIMH+5Obl8g0KICAgICAgICAgKiA8w9DB0V/QwdFfz8HR
X87TPiAtIM/u6/zn7uLg8uXr6CDD0MHRLCDQwdEsIM/B0Swg7+Xw5fjl5Pjo9SDt
4CDu4fHr8+bo4uDt6Ogg4iDWwSAowNEgwf7k5uXyIOgg09DMKQ0KICAgICAgICAg
KiA8z8HRXzc3NzAyPiAtINHu8vDz5O3o6uggz8HRIPEgy9EgMjE3MDEwMDIwICjW
08jBwCkNCg0Kz/Dg4uAg7eAg/evl6vLw7u3t8/4g7+7k7+jx/CDt5SDn4P/i6+Xt
+w0Kz+7r/Ofu4uDy5ev8IMvb0cDKzsLRysDfIMXKwNLF0MjNwCDA0NLT0M7CzcAg
IO3g6eTl7SDiIOHg5+UgTUlOQkFTRQ0Ky+7j6O0g4iBNSU5CQVNFOiBMWVNBS09W
U0tBWUFfNzc3MDINCg0KT1JBQ0xFDQrE4PLgIPHu5+Tg7ej/IO/g8O7r/zogMTUu
MDguMjAxOSAwMTozMzoxMA0KDQoNCtH07vDs6PDu4uDt+yDk4O3t++Ug4iDn4P/i
6uUuDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQrO4fDg4e7y6uA6IMrg
9+Dr6O3gIMLl8OAgwOvl6vHl5eLt4C4gwuXk8/no6SDh8/Xj4Ovy5fANCklEIHVz
ZXIg4iBEQlVTRVI6IDU4NDQ1OTM0Mw0Ky+7j6O0g4iBEQlVTRVI6IEtBQ0hBTElO
QV83NzcwMl9ERSQNCg0Ky+7j6O0g4iBEQlVTRVIg6PHv8C4gKHVkX2lkIDw+IC0x
KTogS0FDSEFMSU5BXzc3NzAyDQrD8PPv7/sg8yDv7uv85+7i4PLl6/8g7vfo+eXt
+y4NCg0Kwvvk4O3t++Ug7/Dg4uA6DQogICAgICAgICAqIDzPwdFfwNFfwf7k5uXy
PiAtINHu8vDz5O3o6uggz8HRLCDw4OHu8uD++ejlIOIgwNEgwf7k5uXyDQogICAg
ICAgICAqIDzD0MHRX9DB0V/PwdFfztM+IC0gz+7r/Ofu4uDy5evoIMPQwdEsINDB
0Swgz8HRLCDv5fDl+OXk+Oj1IO3gIO7h8evz5uji4O3o6CDiINbBICjA0SDB/uTm
5fIg6CDT0MwpDQogICAgICAgICAqIDzPwdFfNzc3MDI+IC0g0e7y8PPk7ejq6CDP
wdEg8SDL0SAyMTcwMTAwMjAgKNbTyMHAKQ0KDQrP8ODi4CDt4CD96+Xq8vDu7e3z
/iDv7uTv6PH8IO3lIOfg/+Lr5e37DQrP7uv85+7i4PLl6/wgysDXwMvIzcAgwsXQ
wCDAy8XK0cXFws3AICDt4Onk5e0g4iDh4OflIE1JTkJBU0UNCsvu4+jtIOIgTUlO
QkFTRTogS0FDSEFMSU5BXzc3NzAyDQoNCk9SQUNMRQ0KxODy4CDx7ufk4O3o/yDv
4PDu6/86IDE1LjA4LjIwMTkgMDE6MzM6MTANCg0KDQrR9O7w7Ojw7uLg7fsg5ODt
7fvlIOIg5+D/4urlLg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQo=

---------5e9i1BxFQrgl19c0gs90---------

Подскажите, пожалуйста, что я делаю не так?
16 авг 19, 08:07    [21950669]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
-2-
Member

Откуда:
Сообщений: 14850
Сергей из Самары,

С таким количеством ошибок и откровениями о паролях работать только в минфине.
16 авг 19, 09:21    [21950713]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
Сергей из Самары
Member

Откуда:
Сообщений: 217
-2-,

Пароли неправильные, так что на здоровье.
И программу я взял из книги С. Фейрштейна и Б.Прибыл "Oracle PL/SQL для профессионало" стр. 764.
Так что все вопросы по ошибкам к ним.

Я же просил помощи и попросил указать на ошибки, поскольку раньше с этим пакетом не работал. А то, что есть ошибки я и так понимаю.
16 авг 19, 09:38    [21950728]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
123йй
Member

Откуда:
Сообщений: 1545
Сергей из Самары
поскольку раньше с этим пакетом не работал.

а где ты увидел пакет ?
ps:было решение от chameleon82 для работы с почтой
16 авг 19, 09:50    [21950737]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 52354
123йй
Сергей из Самары
поскольку раньше с этим пакетом не работал.

а где ты увидел пакет ?
ps:было решение от chameleon82 для работы с почтой
поддержу
пользуемся уже много лет
16 авг 19, 10:02    [21950749]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
Сергей из Самары
Member

Откуда:
Сообщений: 217
andreymx,

Вещь хорошая и универсальная, но для моих задач слишком глобальная. Пробую.
Но тут возник другой вопрос: по прошлой функции почта отправлялась, а при попытки отправить через этот пакет выдается сообщение ORA-24247: network access denied by access control list (ACL)
Вот мои наcтройки ACL:
begin
  dbms_network_acl_admin.create_acl (
  acl          => 'networkacl.xml',
  description  => 'Allow Network Connectivity',
  principal    => 'PUBLIC',
  is_grant     => TRUE,
  privilege    => 'connect',
  start_date   => SYSTIMESTAMP,
  end_date     => NULL);
 
 dbms_network_acl_admin.assign_acl (
  acl         => 'networkacl.xml',
  host        => '*.*.*.*',
  lower_port  => 20,
  upper_port  => 30);
  commit;
end;
16 авг 19, 10:25    [21950771]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1320
Что-то мне кажется, так не сработает:

>>> principal => 'PUBLIC',

Лучше, конечно, уточнить в доке.
16 авг 19, 11:06    [21950831]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
Сергей из Самары
Member

Откуда:
Сообщений: 217
dmdmdm,

Приведенная в первом сообщении функция почту отправляла. Попробовал поменять - не помогло
16 авг 19, 11:20    [21950844]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1320
Сергей из Самары, речь не про функцию, а про ACL.
16 авг 19, 11:23    [21950849]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
Сергей из Самары
Member

Откуда:
Сообщений: 217
dmdmdm,

Нет, я понял. Просто с текущими настройками ACL почта у меня отправляется. А попытка отправить ее из пакета chameleon82
выдается сообщение об ошибке ORA-24247: network access denied by access control list (ACL)

Вот я и не понимаю почему используя Fsend_Mail_file почта уходит, а используя пакет chameleon82 - нет. Настройки ACL одни и те же. Вроде как и хост и порт попадает в разрешение ACL, но...
16 авг 19, 11:29    [21950856]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
nimad
Member

Откуда:
Сообщений: 4
Сергей из Самары,

Поменяйте строчку
utl_smtp.write_raw_data(c, utl_raw.cast_to_raw(convert(Msg_Text,'CL8MSWIN1251')));
на
UTL_SMTP.WRITE_RAW_DATA(c, UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(Msg_Text)));
16 авг 19, 11:34    [21950860]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
Сергей из Самары
Member

Откуда:
Сообщений: 217
nimad
Сергей из Самары,

Поменяйте строчку
utl_smtp.write_raw_data(c, utl_raw.cast_to_raw(convert(Msg_Text,'CL8MSWIN1251')));
на
UTL_SMTP.WRITE_RAW_DATA(c, UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(Msg_Text)));


И чем это поможет? Кодировка не исправилась.
16 авг 19, 12:24    [21950914]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
rf_mail
Member

Откуда:
Сообщений: 100
Сергей из Самары,

Решение
16 авг 19, 12:47    [21950941]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
Сергей из Самары
Member

Откуда:
Сообщений: 217
rf_mail
Сергей из Самары,

Решение

Об этом уже писал 123йй.
Ниже я сообщал, что этим пакетом воспользоваться не получилось из-за ошибки ORA-24247: network access denied by access control list (ACL)
Не получается отправить почту этим решением, хотя приведенный в первом сообщение способ почту отправляет.
16 авг 19, 12:55    [21950953]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
rf_mail
Member

Откуда:
Сообщений: 100
Сергей из Самары,

ORA-24247
16 авг 19, 13:02    [21950962]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
rf_mail
Member

Откуда:
Сообщений: 100
Сергей из Самары,

что касается кодировок- то универсальная UTF8.
convert
у вас в коде видимо одна из переопределенных версий
"Задача достаточно примитивная: выполняется некая процедура и по ней формируется лог, который пишется в файл. Теперь нужно на почту отправить этот файл." - Картинка с другого сайта.Картинка с другого сайта.
16 авг 19, 13:18    [21950981]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
Сергей из Самары
Member

Откуда:
Сообщений: 217
rf_mail
Сергей из Самары,

ORA-24247

Видел. Экспериментировал. Все равно ошибка вылетает.
16 авг 19, 13:37    [21951010]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
rf_mail
Member

Откуда:
Сообщений: 100
Сергей из Самары,

найдите DBA.
16 авг 19, 13:58    [21951041]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
Сергей из Самары
Member

Откуда:
Сообщений: 217
rf_mail
Сергей из Самары,

найдите DBA.


Почему с одними и теми же настройками ACL в первом случае почта уходит, а во втором нет?
Если это пойму, то разберусь и сам
16 авг 19, 14:09    [21951053]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
Сергей из Самары
Member

Откуда:
Сообщений: 217
Сергей из Самары,

Эксперименты показали, что не отрабатывает функция
replies:=utl_smtp.Ehlo(v_Mail_Conn,MAIL_PKG.mailserver);


В первом сообщении применялась:
tl_Smtp.Helo(c, Mailhost)
16 авг 19, 15:06    [21951110]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1320
Сергей из Самары
Эксперименты показали, что не отрабатывает функция


Если уж хотите быть полезным, приводите полный test case. Версия СУБД, полностью код, полностью стек ошибок. А то может получиться так, что вы "нашли ошибку" в штатном поведении протокола. Насколько я помню, HELO в SMTP не обязателен. Перечитал. Для расширений EHLO нужен.
16 авг 19, 15:43    [21951157]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
Сергей из Самары
Member

Откуда:
Сообщений: 217
dmdmdm,

Разобрался
19 авг 19, 08:59    [21952180]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
Сергей из Самары
Member

Откуда:
Сообщений: 217
Сергей из Самары,

Если кому интересно:
В пакете MAIL_PKG был следующий код:
v_Mail_Conn := utl_smtp.Open_Connection(MAIL_PKG.mailserver, MAIL_PKG.mailport)
При этом переменные mailserver и mailport были объявлены как приватные, а не переменные пакеты и они оставались неопределенными.
19 авг 19, 10:44    [21952256]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
123йй
Member

Откуда:
Сообщений: 1545
Сергей из Самары,

а процедуру найти, которая устанавливает эти переменные, не судьба ?
19 авг 19, 10:51    [21952269]     Ответить | Цитировать Сообщить модератору
 Re: Отправка письма с помощью Utl_Smtp  [new]
-2-
Member

Откуда:
Сообщений: 14850
Сергей из Самары
оставались неопределенными.
Кому действительно интересно, потрудится прочитать спецификацию пакета дальше первого комментария.
19 авг 19, 10:52    [21952271]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить