powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Отправка письма с помощью Utl_Smtp
25 сообщений из 28, страница 1 из 2
Отправка письма с помощью Utl_Smtp
    #39850128
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе утро!

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

Делаю так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
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;



В результате отработки функции приходить следующее письмо:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
---------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---------

Подскажите, пожалуйста, что я делаю не так?
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850155
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей из Самары,

С таким количеством ошибок и откровениями о паролях работать только в минфине.
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850164
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-,

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

Я же просил помощи и попросил указать на ошибки, поскольку раньше с этим пакетом не работал. А то, что есть ошибки я и так понимаю.
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850170
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей из Самарыпоскольку раньше с этим пакетом не работал.
а где ты увидел пакет ?
ps:было решение от chameleon82 для работы с почтой
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850180
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123ййСергей из Самарыпоскольку раньше с этим пакетом не работал.
а где ты увидел пакет ?
ps:было решение от chameleon82 для работы с почтой поддержу
пользуемся уже много лет
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850192
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

Вещь хорошая и универсальная, но для моих задач слишком глобальная. Пробую.
Но тут возник другой вопрос: по прошлой функции почта отправлялась, а при попытки отправить через этот пакет выдается сообщение ORA-24247: network access denied by access control list (ACL)
Вот мои наcтройки ACL:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
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;
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850237
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то мне кажется, так не сработает:

>>> principal => 'PUBLIC',

Лучше, конечно, уточнить в доке.
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850245
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm,

Приведенная в первом сообщении функция почту отправляла. Попробовал поменять - не помогло
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850247
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей из Самары, речь не про функцию, а про ACL.
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850252
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm,

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

Вот я и не понимаю почему используя Fsend_Mail_file почта уходит, а используя пакет chameleon82 - нет. Настройки ACL одни и те же. Вроде как и хост и порт попадает в разрешение ACL, но...
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850256
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)));
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850288
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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)));

И чем это поможет? Кодировка не исправилась.
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850302
Фотография rf_mail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей из Самары,

Решение
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850309
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rf_mailСергей из Самары,

Решение
Об этом уже писал 123йй.
Ниже я сообщал, что этим пакетом воспользоваться не получилось из-за ошибки ORA-24247: network access denied by access control list (ACL)
Не получается отправить почту этим решением, хотя приведенный в первом сообщение способ почту отправляет.
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850316
Фотография rf_mail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей из Самары,

ORA-24247
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850328
Фотография rf_mail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей из Самары,

что касается кодировок- то универсальная UTF8.
convert
у вас в коде видимо одна из переопределенных версий
"Задача достаточно примитивная: выполняется некая процедура и по ней формируется лог, который пишется в файл. Теперь нужно на почту отправить этот файл." -
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850344
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rf_mailСергей из Самары,

ORA-24247
Видел. Экспериментировал. Все равно ошибка вылетает.
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850362
Фотография rf_mail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей из Самары,

найдите DBA.
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850370
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rf_mailСергей из Самары,

найдите DBA.

Почему с одними и теми же настройками ACL в первом случае почта уходит, а во втором нет?
Если это пойму, то разберусь и сам
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850408
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей из Самары,

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



В первом сообщении применялась:
Код: plsql
1.
tl_Smtp.Helo(c, Mailhost)
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850436
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей из СамарыЭксперименты показали, что не отрабатывает функция

Если уж хотите быть полезным, приводите полный test case. Версия СУБД, полностью код, полностью стек ошибок. А то может получиться так, что вы "нашли ошибку" в штатном поведении протокола. Насколько я помню, HELO в SMTP не обязателен. Перечитал . Для расширений EHLO нужен.
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850922
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm,

Разобрался
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850962
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей из Самары,

Если кому интересно:
В пакете MAIL_PKG был следующий код:
v_Mail_Conn := utl_smtp.Open_Connection(MAIL_PKG.mailserver, MAIL_PKG.mailport)
При этом переменные mailserver и mailport были объявлены как приватные, а не переменные пакеты и они оставались неопределенными.
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850966
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей из Самары,

а процедуру найти, которая устанавливает эти переменные, не судьба ?
...
Рейтинг: 0 / 0
Отправка письма с помощью Utl_Smtp
    #39850967
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей из Самарыоставались неопределенными.Кому действительно интересно, потрудится прочитать спецификацию пакета дальше первого комментария.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Отправка письма с помощью Utl_Smtp
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]