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

Откуда: Москва
Сообщений: 396
Шлю почту из оракла такой процедурой:
    PROCEDURE SEND_MAIL(  
                          HOSTNAME IN VARCHAR2 DEFAULT 'mail.rccf.ru', 
                          MAILFROM IN VARCHAR2 DEFAULT 'SiteScope MISC TEST',
                          MAILFROMADDR IN VARCHAR2 DEFAULT 'SiteScope@alerts.ru',
                          MAILTO IN VARCHAR2 DEFAULT NULL,
                          mailtoaddr IN VARCHAR2,
                          subject IN VARCHAR2 DEFAULT NULL,
                          messagebody IN VARCHAR2
                          ) is
    myconn sys.utl_smtp.connection;
    message VARCHAR2(32000);
    begin
        begin
            myconn := sys.utl_smtp.open_connection(host => HOSTNAME, port => 25);
            sys.utl_smtp.helo(c => myconn,domain => ' ');
            sys.utl_smtp.mail(c => myconn,sender => '<'||MAILFROMADDR||'>');
            sys.utl_smtp.rcpt(c => myconn,recipient => '<'||mailtoaddr||'>');
            message := message || 'TO: '||MAILTO||' <'||mailtoaddr||'>'||chr(10);
            message := message || 'FROM: '||MAILFROM||' <'||MAILFROMADDR||'>'||chr(10);
            message := message || 'SUBJECT:'||subject||chr(10);--||chr(10);
            message := message || 'Mime-Version: 1.0'||chr(10);
            message := message || 'Content-Type: text/plain; charset=koi8-r'||chr(10);
            message := message || 'Content-Transfer-Encoding: 8bit'||chr(10)||chr(10);
            
            message := message || messagebody;
            
            message := convert(message,'CL8KOI8R' );
            message := sys.utl_raw.cast_to_raw(message);
            sys.utl_smtp.open_data(c => myconn);
            sys.utl_smtp.write_raw_data(c => myconn,data => message);
            sys.utl_smtp.close_data(c => myconn);
            sys.utl_smtp.noop(c => myconn);
        end;
    end SEND_MAIL;
Вызываю так:
begin
SEND_MAIL(mailtoaddr => 'rrr@rccf.ru',subject => 'TEST notification from Oracle',messagebody => 'rrr');
end;
Если у письма один адресат, как в примере, то вызов работает, и письмо шлётся. А как передать список адресов? Хочу послать письмо, например, на три адреса: rrr@rccf.ru,sss@rccf.ru,ttt@rccf.ru
4 июн 09, 12:04    [7264375]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по utl_smtp  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18482
Для каждого повторять sys.utl_smtp.rcpt(c => myconn,recipient => '<'||mailtoaddr||'>');
4 июн 09, 12:07    [7264391]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по utl_smtp  [new]
yon_brover
Member

Откуда: Москва
Сообщений: 396
Спасибо, заработало.
4 июн 09, 20:31    [7267391]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить