Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Multiple Recipients SMPT  [new]
Frequency
Member

Откуда:
Сообщений: 209
Наверно уже на кучу таких вопросов отвечали. Вот мой скрипт , все ок работает.

CREATE OR REPLACE PROCEDURE send_mails (p_to        IN VARCHAR2,
                                       p_from      IN VARCHAR2,
                                       p_subject   IN VARCHAR2,
                                       p_message   IN VARCHAR2,
                                       p_smtp_host IN VARCHAR2,
                                       p_smtp_port IN NUMBER DEFAULT 25)
AS
  l_mail_conn   UTL_SMTP.connection;
  
  PROCEDURE process_recipients(p_mail_conn IN OUT UTL_SMTP.connection,
                               p_list      IN     VARCHAR2)
  AS
    l_tab string_api.t_split_array;
  BEGIN
    IF TRIM(p_list) IS NOT NULL THEN
      l_tab := string_api.split_text(p_list);
      FOR i IN 1 .. l_tab.COUNT LOOP
        UTL_SMTP.rcpt(p_mail_conn, TRIM(l_tab(i)));
      END LOOP;
    END IF;
  END;
  
BEGIN

  l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port);
  UTL_SMTP.helo(l_mail_conn, p_smtp_host);
  UTL_SMTP.mail(l_mail_conn, p_from);
  UTL_SMTP.rcpt(l_mail_conn, p_to);

  UTL_SMTP.open_data(l_mail_conn);


  UTL_SMTP.write_data(l_mail_conn, 'Date: ' || TO_CHAR(SYSDATE, 'DD-MON-YYYY HH24:MI:SS') ||  UTL_TCP.crlf);
  UTL_SMTP.write_data(l_mail_conn, 'To: ' || p_to || UTL_TCP.crlf);
  UTL_SMTP.write_data(l_mail_conn, 'From: ' || p_from || UTL_TCP.crlf);
  UTL_SMTP.write_raw_data(l_mail_conn, UTL_RAW.cast_to_raw('Subject: '|| convert(p_subject, 'AL32UTF8') || UTL_TCP.crlf));
  UTL_SMTP.write_data(l_mail_conn, 'Reply-To: ' || p_from || UTL_TCP.crlf || UTL_TCP.crlf);

  UTL_SMTP.write_data(l_mail_conn, UTL_TCP.CRLF);
  UTL_SMTP.write_raw_data(l_mail_conn, UTL_RAW.cast_to_raw(convert(p_message, 'AL32UTF8')));
  UTL_SMTP.close_data(l_mail_conn);
  UTL_SMTP.quit(l_mail_conn); 

  
END;
/


Глупый вопрос , какой синтаксис отправки , нескольким пользователям ?


begin
  send_mails(
p_from=> 'from@gmail.com',
p_to=> 'test1@gmail.com' ,                
p_subject   => 'TEST SEND MAIL',p_message   =>'test',
p_smtp_host => '127.0.0.1');
 end;
 /



А именно p_to=> 'test1@gmail.com , test2@gmail.com' email через запятую ? Или как ?
28 июн 20, 22:40    [22158714]     Ответить | Цитировать Сообщить модератору
 Re: Multiple Recipients SMPT  [new]
Frequency
Member

Откуда:
Сообщений: 209
Так не катит

begin
  send_mails
           (
            p_to =>  'test1@gmail.com, test2@gmail.com' ,
            p_from=> 'from@gmail.com',
            p_subject   => 'TEST SEND MAIL',
            p_message   =>'test',
            p_smtp_host => '127.0.0.1'
           );
 end;
 /



ORA-29279: SMTP permanent error: 501 5.1.3 Bad recipient address syntax
ORA-06512: at "SYS.UTL_SMTP", line 57
ORA-06512: at "SYS.UTL_SMTP", line 142
ORA-06512: at "SYS.UTL_SMTP", line 495
ORA-06512: at "SYSTEM.SEND_MAILS", line 28
ORA-06512: at line 2
28 июн 20, 23:14    [22158721]     Ответить | Цитировать Сообщить модератору
 Re: Multiple Recipients SMPT  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9901
UTL_SMTP.rcpt('test1@gmail.com');
UTL_SMTP.rcpt('test2@gmail.com');


SY.
28 июн 20, 23:37    [22158726]     Ответить | Цитировать Сообщить модератору
 Re: Multiple Recipients SMPT  [new]
Frequency
Member

Откуда:
Сообщений: 209
SY
UTL_SMTP.rcpt('test1@gmail.com');
UTL_SMTP.rcpt('test2@gmail.com');


SY.


Сможете подробнее , если вам не сложно , буду благодарен ?
29 июн 20, 00:11    [22158739]     Ответить | Цитировать Сообщить модератору
 Re: Multiple Recipients SMPT  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9901
Frequency


Сможете подробнее , если вам не сложно , буду благодарен ?


Куда еще подробнее? Выролняем UTL_SMTP.rcpt для каждого адресата. T.e. у тебя CSV адресатов. Псему в цикле разбиваешь CSV на отдельных адресатов и для каждого UTL_SMTP.rcpt.

SY.
29 июн 20, 00:34    [22158742]     Ответить | Цитировать Сообщить модератору
 Re: Multiple Recipients SMPT  [new]
Elic
Member [заблокирован]

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 29861
Frequency
Сможете подробнее , если вам не сложно , буду благодарен ?
Чудак, почитал бы RFC на SMTP.
29 июн 20, 07:39    [22158776]     Ответить | Цитировать Сообщить модератору
 Re: Multiple Recipients SMPT  [new]
Frequency
Member

Откуда:
Сообщений: 209
SY
Frequency


Сможете подробнее , если вам не сложно , буду благодарен ?


Куда еще подробнее? Выролняем UTL_SMTP.rcpt для каждого адресата. T.e. у тебя CSV адресатов. Псему в цикле разбиваешь CSV на отдельных адресатов и для каждого UTL_SMTP.rcpt.

SY.



понял спасибо
29 июн 20, 08:32    [22158809]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить