powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Передача письма с вложением. Готовое решение
25 сообщений из 274, страница 5 из 11
Передача письма с вложением. Готовое решение
    #38034766
chameleon82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
seregaLOKIХотел поинтересоваться есть ли следующая возможность:

Выбираем нужные данные и их отправляем формате xls в качестве аттача с присваиванием ему имени, как я понял у вас реализовано присоединение файлов которые где то у нас хранятся заранее?

Да.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 -- Из файла 
 PROCEDURE ADD_ATTACHMENT ( dirname IN varchar2
                          , filename IN varchar2
						  , mimetype IN varchar2 DEFAULT 'text/plain'
                          , name IN varchar2 DEFAULT NULL
                           );

 -- Из базы данных
 PROCEDURE ADD_ATTACHMENT ( blobloc IN blob
                          , filename IN varchar2
						  , mimetype IN varchar2 DEFAULT 'text/html'
                           );



Заметил, что некоторых интересует возможность добавления аттача в виде clob. Ну тут два пути, первый - дописать пакет с отправкой clob подобно отправке blob, и второй - просто конвертнуть клоб в блоб.
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38044128
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробую освоить пакет за который автору выражаю огромную благодарность - спасибо!!!. С обычными письмами все работает. Но не могу пока отправить результат запроса (таблица) в аттачменте. Мой код таков:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
DECLARE
      blobloc BLOB;
    BEGIN
     MY_SCHEMA.MAIL_PKG.SET_MAILSERVER ('localhost',25);
     
     
     select TABLE_NAME, OWNER, INITIAL_EXTENT INTO blobloc from all_tables where rownum < 21;                        
     MY_SCHEMA.MAIL_PKG.ADD_ATTACHMENT(  blobloc 
                             ,'ReportResult.htm'
                             ,'text/html'
                            );                            

     MY_SCHEMA.MAIL_PKG.SEND( mailto => 'maya@company.ru'
                  , subject => 'Test subject'
                  , message => 'Some <b>bold</b> message!'
                  , mailfrom => 'REPORT SYSTEM <rep@prep>;'
                  , mimetype => 'text/html'
                  , priority => 1
                  );
    END;



Как результат пишет:

Код: plaintext
1.
2.
3.
ORA-06550: Строка 10, столбец 60:
PL/SQL: ORA-00947: не хватает значений для данных
ORA-06550: Строка 10, столбец 6:
PL/SQL: SQL Statement ignored

Спасибо за помощь.
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38044182
Ura!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12,

Код: plsql
1.
select TABLE_NAME, OWNER, INITIAL_EXTENT INTO blobloc from all_tables where rownum < 21;        


выбираете три поля, а засовываете в одно. да и то как то странно blobloc - это блоб, а вы пытаетесь туда засунуть совсем не блоб
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38044227
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ura!,

пробовала конкатенировать:
Код: plsql
1.
select to_blob(TABLE_NAME||OWNER||INITIAL_EXTENT) INTO vBlob from all_tables where rownum < 21;


Результат:
Код: plaintext
ORA-01465: неверно задано шестнадцатеричное число

попробовала utl_raw.cast_to_raw, ну и конечно получила по почте прикрепленный ReportResult.htm с набором не понятных символов =(.
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38044245
Ura!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12,

Я так понял вам для проверки пихнуть блоб надо? Ну создайте свою табличку с полем BLOB запихните туда что нужно средствами тоада (ну или чем вы там пользуетесь) и считайте это поле в вашу переменную.
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38044306
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ura!,
Мне надо отправить письмо с аттачментом в котором будет читаемая таблица. Лягушоноком пользуюсь.

Попробую, таблицу. Единственное я не пойму как из блоба родиться таблица в аттаче. Сообщу по результатам.
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38044367
Ura!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12,

:)
Из блоба сама таблица естественно не появится, так же как нельзя таблицу запихать в блоб так как вы пытались. Блоб это тип данных который может содержать чего угодно: исполняемые файлы, картинки, екселевские таблицы, html-ные таблицы и т.д. Оракл не разбирает чего у него там хранится, хранит как есть побайтно. Соответственно что вы туда положите, то он и отправит с письмом (сам пакетом не пользовался, но народ говорит, что оно так и есть)
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38044379
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ura!,
тогда мне остается вариант положить результат селекта в директорию (используя UTL_FILE) и потом его послать с помощью пакета, разработанного автором топика. А если мне в одном письме нужно послать три файла?
Может автор пакета что-то подскажет или если кто решал аналогичную задачу. Спасибо.
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38044566
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chameleon82, помоги. =)
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38045408
chameleon82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
May12Может автор пакета что-то подскажет или если кто решал аналогичную задачу. Спасибо.

В рамках Вашей темы .
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38110284
88888888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, может кто подсказать. Нужно отправить HTML-документ как прикрепление, а он постоянно приходит в теле письма в исковерканном виде.
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38119140
chameleon82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОБНОВИЛ И ВЫЛОЖИЛ ПАКЕТ НА GIT

88888888Добрый день, может кто подсказать. Нужно отправить HTML-документ как прикрепление, а он постоянно приходит в теле письма в исковерканном виде.

Возьмите версию с GitHub и попробуйте:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    DECLARE
      vClob CLOB;
    BEGIN

     -- Add attachment from CLOB
     vClob := '<HTML><TITLE>Clob Attachment Example</TITLE><BODY><b>This</b> is HTML clob attachment example</BODY></HTML>';
     MAIL_PKG.ADD_ATTACHMENT( vClob
                             ,'ClobResult.htm'
                             ,'text/html'
                            );

     MAIL_PKG.SEND( mailto => 'A. Ivanov <a.ivanov@yourcomany.ru>;'
                  , subject => 'Test subject'
                  , message => 'Some <b>bold</b> message! See Attacments!'
                  , mailfrom => 'Oracle Notify <no-reply@yourcompany.ru>;'
                  , mimetype => 'text/html'
                  , priority => 1
                  );
    END;
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38166932
LimonFX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chameleon82,

на ящики mail.ru и gmail почему-то не отсылает
Тестировал на примере 4) Extension Email with attacments
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38166990
LimonFX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь. Работает всё, просто комп без выхода в интернет был))
Но нашел другую странность, аутлук 2007 и выше почему-то письма с вложением принимает без вложения
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38167929
chameleon82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Полный пример можете привести?

Проверял на theBat и Outlook, все работало норм, сейчас аутлука под рукой нет.
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38168144
LimonFX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В качестве примера использовал 4) Extension Email with attacments
Причем если переслать это же письмо "без вложения" на другой адрес где используется тандерберд, то там вложение присутствует.
Не знаю, может быть тут от настроек аутлука многое зависит
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38239876
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже пользовал пакет. Есть пара вроде бы багов :) Версию взял с GitHub
Отправляю текстовый файл из блоба.
Во-первых, веб-интерфейс Яндекса не видит аттачей. Веб-интерфейс ГМейла - видит, Бат - видит.
Во-вторых, какая-то чехарда с ситуацией, когда тело письма пустое. В этом случае в процедуре не добавляется имя первого файла почему-то :)
Вот этот стремный кусок:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
      FOR x IN 1 .. attachments.count LOOP
          utl_smtp.write_data(v_Mail_Conn, '--'|| boundary || crlf );
          -- HOTFIX
          IF message IS NOT NULL OR x!=1 THEN
            utl_smtp.write_data(v_Mail_Conn, 'Content-Type: '||attachments(x).mimetype||';'|| crlf );
            utl_smtp.write_data(v_Mail_Conn, ' name="');
            utl_smtp.write_raw_data(v_Mail_Conn,utl_raw.cast_to_raw(attachments(x).name));
            utl_smtp.write_data(v_Mail_Conn, '"' || crlf);
            utl_smtp.write_data(v_Mail_Conn, 'Content-Transfer-Encoding: base64'|| crlf );
            utl_smtp.write_data(v_Mail_Conn, 'Content-Disposition: attachment;'|| crlf );
            utl_smtp.write_data(v_Mail_Conn, ' filename="' || ENCODE(attachments(x).name) || '"' || crlf);
          ELSE
           utl_smtp.write_data(v_Mail_Conn, 'Content-Type: '||attachments(x).mimetype||'; charset="utf-8"'|| crlf );
           utl_smtp.write_data(v_Mail_Conn, 'Content-Transfer-Encoding: base64'|| crlf );
          END IF;



Почему ТАК?
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38239924
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У себя в версии просто убрал прикол с разной отправкой первого файла и всех остальных. Вроде работает :)
Но на Яндексе все равно не показывает аттача... Может как-нибудь покручу в руках аттачи Яндекса...
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38251157
chameleon82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Romanenko
Почему ТАК?

предполагалось, что тело письма будет браться из аттача, если текст не задан. Вполне можно выпилить, т.к. в версии на гите письма с длинным текстом можно добавлять клобом.

а вот с яндексом беда. надо будет покрутить )
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38285308
maxdart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

В первую очередь, хочу сказать большое спасибо автору за труды. Очень ценный пакет.

Есть пара вопросов по его работе. А именно...

1. При попытке получения почты с ящика не сервере mail.ru почта получается удачно, однако, не смотря на то, что в реальности письма имеют вложения, пакет их не видит. В чем может быть проблема? Встречалась ли она еще у кого-то, или я то-то делаю не так?
2. Не выходит получить почту с ящика на gmail. Там используется SSL, и порт не 110, а 995. Выходит, пакет не имеет поддержки gmail (по крайней мере, для получения почты).

Спасибо за ответы.
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38286306
chameleon82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maxdartЗдравствуйте!

В первую очередь, хочу сказать большое спасибо автору за труды. Очень ценный пакет.

Есть пара вопросов по его работе. А именно...

1. При попытке получения почты с ящика не сервере mail.ru почта получается удачно, однако, не смотря на то, что в реальности письма имеют вложения, пакет их не видит. В чем может быть проблема? Встречалась ли она еще у кого-то, или я то-то делаю не так?
2. Не выходит получить почту с ящика на gmail. Там используется SSL, и порт не 110, а 995. Выходит, пакет не имеет поддержки gmail (по крайней мере, для получения почты).

Спасибо за ответы.

Спасибо. Получение почты в части получения вложений крайне сыро написано (хотя странно, что у вас не видит, у меня на всех тестах иногда показывал больше вложений чем на самом деле из-за недоработанного парсинга, да и проблемы с получением вложений больших обьемов). К сожалению, у самого пока нет времени на дальнейшие доработки, но всегда кто-нибудь может помочь его подправить на GIT ;)
по п.2 пакет надо доработать процедурой типа SET_POPSERVER(p_host, p_port default 110, p_protocol ???); .
а если просто поменять порт на 995 не проходит?
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38293546
krupt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Подскажите, как отправить письмо с картинкой в теле письма, а не как вложение?
Допустим, если в Lotus вставить html-файл с <img src>, то он возьмет файл с диска и запихнет в письмо, но не будет отображать во вложениях.
Спасибо.
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38295679
sinitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krupt,

в протоколе такой возможности не припоминаю ( гугли на smtp rfc iso ).
отображеним занимается конкретный клиент,
если есть желание, делай заголовки под него.
но другой клиент будет отображать по другому.
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38295710
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sinitsaв протоколе такой возможности не припоминаю ( гугли на smtp rfc iso ).да-да, картинки это вотчина протокола smtp.
...
Рейтинг: 0 / 0
Передача письма с вложением. Готовое решение
    #38295978
chameleon82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kruptДобрый день.
Подскажите, как отправить письмо с картинкой в теле письма?


Полагаю, Вы имели ввиду что-то вроде:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 BEGIN
	 MAIL_PKG.ADD_ATTACHMENT( ... , 'name' => 'mypicture.jpg'
							);
	 MAIL_PKG.SEND( ....
				  , message => 'Some <b>bold</b> message!'
				  , mailfrom => 'no-reply@yourserver.ru'

				  , sendername => 'Alert system'
				  , recipientname => 'Dear user'
	              );
	END;
...
Рейтинг: 0 / 0
25 сообщений из 274, страница 5 из 11
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Передача письма с вложением. Готовое решение
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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