Отправляйте динамические электронные письма с сервера Oracle - PullRequest
1 голос
/ 17 сентября 2011

Я могу отправлять электронные письма из Oracle после настройки, используя следующий скрипт:

BEGIN
  UTL_MAIL.send(sender     => 'moiz@q8.com',  
                recipients => 'moiz@q8.com',  
                subject    => 'UTL_MAIL Test',
                message    => 'your procedure will come here ');
END;

Мне нужно прикрепить вывод запроса к телу.Как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 17 сентября 2011

Я предлагаю вам написать PL / SQL для вывода нужных результатов в строку VARCHAR2 и передать это в тело сообщения (т. Е. Параметр "message" в вашей процедуре выше)

1 голос
/ 11 октября 2011

Вы можете прикрепить файл

begin
     UTL_MAIL.SEND_ATTACH_VARCHAR2
    (
            sender => 'noreply@noreply.com'
           ,recipients => 'WHOEVER@WHATEVER.co.uk,WHOEVER@WHATEVER.co.uk,WHOEVER@WHATEVER.co.uk'
           ,cc => null
           ,bcc =>  NULL
           ,subject => 'Message from WHOEVER@WHATEVER.co.uk '
           ,message => ''
           ,mime_type => 'text/html; charset=us-ascii'
           ,priority => 3
           ,attachment => '<html>
                                            <head>
                                               <p><img src="https://lh6.DWEDEEDEtent.com/-yeca6z1QTB8/To11ZnsaCCI/AAAAAAAAAFc/8tFVIZhl7YM/w674-h399-k/Picture1.jpg" alt="Site Logo" />
                                              <title>data Team</title>

                                            </head>
                                            <body>
                                                <body style="background-color:yellow;">

                                                <p>You are using <b><i>bad Cartesian<b><i> on <b>DATABASE<B> </p>
                                             </body>
                                          </html>'
           ,att_inline => TRUE
           ,att_mime_type=>'application/html'
           ,att_filename => 'cartesien.html'  );
      end; 
0 голосов
/ 17 сентября 2011

Попробуйте следующее (для одной строки, возвращаемой вашим выбором):

DECLARE
    v_message        VARCHAR2(4000);
BEGIN
    SELECT text 
    INTO v_message
    FROM yourtable;

    UTL_MAIL.send(sender     => 'moiz@q8.com',  
                recipients => 'moiz@q8.com',  
                subject    => 'UTL_MAIL Test',
                message    => v_message);
END;

или если у вас есть несколько строк, вы можете создать значение v_message (заменив select на with)

FOR rec IN 
(
    SELECT text 
    INTO v_message
    FROM yourtable
)
LOOP
    v_message:=v_message||rec.text;
END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...