Рассылка сообщений на e-mail
На страницу 1, 2, 3 След.
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
belyansky Участник со стажем
Вступление в Клуб: 22.10.2007
|
Чт Фев 07, 2008 02:51  Рассылка сообщений на e-mail |
|
Полезность: Нет оценки
|
Добрый день, коллеги!
Я пытаюсь автоматизировать мониторинг некоторых процессов в ИБСО, таким образом чтобы при возникновении критичной ситуации отправлялось сообщение по электронной почте.
Подскажите, кто-нибудь сталкивался с подобными разработками?
Нашёл несколько операций и функций в ИБСО, которые "должны" отправлять сообщения, но ничего не заработало, хотя вроде и параметры забиваю верно... Может нужны какие-то дополнительные настройки для возможности отправки сообщений.
В общем жду ваших комментариев, заранее Спасибо! |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Чт Фев 07, 2008 07:18  Re: Рассылка сообщений на e-mail |
|
Полезность: Нет оценки
|
belyansky пишет: | Добрый день, коллеги!
Я пытаюсь автоматизировать мониторинг некоторых процессов в ИБСО, таким образом чтобы при возникновении критичной ситуации отправлялось сообщение по электронной почте.
Подскажите, кто-нибудь сталкивался с подобными разработками?
Нашёл несколько операций и функций в ИБСО, которые "должны" отправлять сообщения, но ничего не заработало, хотя вроде и параметры забиваю верно... Может нужны какие-то дополнительные настройки для возможности отправки сообщений.
В общем жду ваших комментариев, заранее Спасибо! |
у нас разработана система документооборота в ИБСО.. уведомления пользователям отправляютс яв том числе и по электронной почте _________________ всегда есть как минимум 2 выхода |
|
 |
w00per Профи
Вступление в Клуб: 17.10.2007
|
Чт Фев 07, 2008 09:19  Re: Рассылка сообщений на e-mail |
|
Полезность: 1
|
belyansky пишет: | Добрый день, коллеги!
Я пытаюсь автоматизировать мониторинг некоторых процессов в ИБСО, таким образом чтобы при возникновении критичной ситуации отправлялось сообщение по электронной почте.
Подскажите, кто-нибудь сталкивался с подобными разработками?
Нашёл несколько операций и функций в ИБСО, которые "должны" отправлять сообщения, но ничего не заработало, хотя вроде и параметры забиваю верно... Может нужны какие-то дополнительные настройки для возможности отправки сообщений.
В общем жду ваших комментариев, заранее Спасибо! |
Может дело не в ЦФТшных операциях, а в настройке почтового сервера. Например SMTP требует авторизации или еще что-то типа того, попробуйте посмотреть в эту сторону. _________________ I Lie About Everything. |
|
 |
belyansky Участник со стажем
Вступление в Клуб: 22.10.2007
|
Чт Фев 07, 2008 09:38   |
|
Полезность: Нет оценки
|
а как посылать сообщения через SMTP? |
|
 |
Igorka Профи
Вступление в Клуб: 28.09.2007
|
Чт Фев 07, 2008 10:10  Re: Рассылка сообщений на e-mail |
|
Полезность: Нет оценки
|
belyansky пишет: |
Нашёл несколько операций и функций в ИБСО, которые "должны" отправлять сообщения |
а в ИБСО есть штатный функционал по работе с электронной почтой? |
|
 |
w00per Профи
Вступление в Клуб: 17.10.2007
|
Чт Фев 07, 2008 10:48  Re: Рассылка сообщений на e-mail |
|
Полезность: 1
|
Igorka пишет: |
а в ИБСО есть штатный функционал по работе с электронной почтой? |
Есть, только не в ИБСО, а в Oracle см. utl_smtp _________________ I Lie About Everything. |
|
 |
belyansky Участник со стажем
Вступление в Клуб: 22.10.2007
|
Пт Фев 08, 2008 02:14  Re: Рассылка сообщений на e-mail |
|
Полезность: Нет оценки
|
Igorka пишет: | belyansky пишет: |
Нашёл несколько операций и функций в ИБСО, которые "должны" отправлять сообщения |
а в ИБСО есть штатный функционал по работе с электронной почтой? |
можно попробовать поискать операции с именами mail или sendmail, может что-то найдётся, у меня такие есть, но с их "работоспособностью" я не разобрался. |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Пт Фев 08, 2008 07:43   |
|
Полезность: 4
|
Процедура отправки e-mail
Код: |
procedure send_email(p_host in varchar2, p_port in number, p_from in varchar2, p_to in varchar2, p_subject in raw, p_data in raw) is
v_connection utl_smtp.connection;
v_from varchar2(64);
v_orahost varchar2(64);
begin
if p_port is null then
p_port := 25;
end if;
if p_from is null then
-- begin pl/sql
select host_name into v_orahost from v$instance;
-- end pl/sql
v_from := 'From: "'||sys_context('USERENV','DB_NAME')||'.'||sys_context('USERENV','DB_DOMAIN')||' (ORACLE on '||v_orahost||')"';
else
v_from := 'From: "'||p_from||'"';
end if;
v_connection:=utl_smtp.open_connection(p_host,p_port);
utl_smtp.helo(v_connection,'domain.ru');
utl_smtp.mail(v_connection,'oracle-server@domain.ru');
utl_smtp.rcpt(v_connection,p_to);
utl_smtp.open_data(v_connection);
utl_smtp.write_data(v_connection,v_from||utl_tcp.CRLF);
utl_smtp.write_data(v_connection,'To: '||p_to||utl_tcp.CRLF);
utl_smtp.write_data(v_connection,'MIME-Version: 1.0'||utl_tcp.CRLF);
utl_smtp.write_data(v_connection,'Content-Type: text/plain; charset=iso-8859-5'||utl_tcp.CRLF);
utl_smtp.write_data(v_connection,'Subject: ');
utl_smtp.write_raw_data(v_connection,p_subject);
utl_smtp.write_data(v_connection,utl_tcp.CRLF);
utl_smtp.write_data(v_connection,utl_tcp.CRLF);
utl_smtp.write_raw_data(v_connection,p_data);
utl_smtp.close_data(v_connection);
utl_smtp.quit(v_connection);
exception when others then
pragma error('Невозможно отправить электронное письмо по следующим причинам: '||sqlerrm(sqlcode));
end;
|
Вызов процедуры
Код: |
::[RUNTIME].[KOU_LIB].send_email(mailhost, mailport, 'Overdrafts', email, utl_raw.cast_to_raw(mailsubj), utl_raw.cast_to_raw(maildata));
|
Естественно, должен стоять пакет utl_smtp. В свойствах операции, из которой вызывается send_emal, должен стоять признак "Расширенный синтаксис". |
|
 |
ssa774 Профи
Вступление в Клуб: 30.11.2007
|
Ср Фев 13, 2008 14:40   |
|
Полезность: Нет оценки
|
Процедура работает, письма отправляет, все здорово!
Но почему-то русский текст выводится, как попало, только латинницей нормально... Что нужно сделать? |
|
 |
ssa774 Профи
Вступление в Клуб: 30.11.2007
|
Ср Фев 13, 2008 14:51   |
|
Полезность: Нет оценки
|
И еще не отправляет на два адреса сразу. Пробовала и через ";" и через "," - не работает... |
|
 |
w00per Профи
Вступление в Клуб: 17.10.2007
|
Ср Фев 13, 2008 16:18   |
|
Полезность: Нет оценки
|
ssa774 пишет: | Процедура работает, письма отправляет, все здорово!
Но почему-то русский текст выводится, как попало, только латинницей нормально... Что нужно сделать? |
Надо поиграться с кодировкой, например: Код: | utl_smtp.write_data(v_connection,'Content-Type: text/plain; charset="koi8-r"'||utl_tcp.CRLF); |
_________________ I Lie About Everything. |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Ср Фев 13, 2008 16:34   |
|
Полезность: Нет оценки
|
ssa774 пишет: | Процедура работает, письма отправляет, все здорово!
Но почему-то русский текст выводится, как попало, только латинницей нормально... Что нужно сделать? |
Мы только не смогли добиться кириллицы в теме письма, а в теле - все получилось. |
|
 |
w00per Профи
Вступление в Клуб: 17.10.2007
|
Ср Фев 13, 2008 16:36   |
|
Полезность: Нет оценки
|
ssa774 пишет: | И еще не отправляет на два адреса сразу. Пробовала и через ";" и через "," - не работает... |
А в цикле не пробовали
Например как-то так
Код: |
nb integer;
len integer;
cnt integer;
begin
cnt := (length(p_from) - length(replace(p_from,';',''))) - 1;
if cnt < 0 then cnt := 0; end if;
for i in 1 .. cnt
loop
nb := instr(p_from, ';', 1, i) + 1;
len := instr(p_from, ';', 1, i + 1) - nb;
v_from := substr(p_from, nb, len);
Send_Letter(.....);
end loop;
end; |
_________________ I Lie About Everything. |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Ср Фев 13, 2008 16:37   |
|
Полезность: Нет оценки
|
ssa774 пишет: | И еще не отправляет на два адреса сразу. Пробовала и через ";" и через "," - не работает... |
Мы смогли только написать свою функцию, которая разбирает строку адресатов и отправляет письмо каждому по-очереди. |
|
 |
dnk_dz Эксперт
Вступление в Клуб: 19.09.2007
|
Чт Фев 14, 2008 07:15   |
|
Полезность: Нет оценки
|
ssa774 пишет: | Процедура работает, письма отправляет, все здорово!
Но почему-то русский текст выводится, как попало, только латинницей нормально... Что нужно сделать? |
Процедура отправляет письма в кодировке ораклового сервера. Если хотите отправить в другой кодировке, то необходимо преобразовать и сам текст в нужную кодировку.
Тему письма я тоже "ни асилил", да и времени особо не было разбираться.
Можно почитать документацию по протоколу SMTP, допилить процедуру.
Последний раз редактировалось: dnk_dz (Чт Фев 14, 2008 07:50), всего редактировалось 1 раз |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|