| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Oracle > как к отправляемому через smtp сервер письму прикр |
| Автор: dron000 4.11.2006, 05:17 |
| Использую пакет dbms_ , вот проблема как к отправляемому через smtp сервер письму прикреплять файлы? |
| Автор: Paradox 7.11.2006, 11:28 |
| написать процедуру на java например и дергать ее из Оракла |
| Автор: dron000 8.11.2006, 14:25 | ||
Не знаю Java но зато уже знаю как создавать и прикреплять текстовые-вот только как открывать файлы с диска!...
Добавлено @ 14:26 ....Да ...совсем забыл возникает хрень с русскими буквами-на почту приходят каракулями. |
| Автор: LSD 8.11.2006, 15:06 |
Используй UTL_FILE. |
| Автор: LSD 10.11.2006, 16:50 |
| http://www.oracle.com/technology/sample_code/tech/pl_sql/htdocs/Utl_Smtp_Sample.html пример использования UTL_SMTP с авторизацией, аттачментами и т.п. |
| Автор: dron000 11.11.2006, 23:18 |
| Да это я уже все видел и пробовал-работает,но там загрузка атачментов НЕ С ДИСКА!!!-меня именно этот момент интерсует,желательно чтобы размер подгруж. атачмента был побольше или не ограничен. |
| Автор: LSD 12.11.2006, 02:56 |
| Идем в поиск, забиваем UTL_FILE, и находим следующие темы: http://forum.vingrad.ru/topic-57338.html http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:744825627183 |
| Автор: dron000 13.11.2006, 12:41 |
| Честно говоря почитав по ссылкам я еще больше запутался.Ты не мог бы написать фрагмент прикрепления файла с диска и его отправки вместе... |
| Автор: dron000 21.11.2006, 17:58 |
| Использую пакет dbms_ , вот проблема как к отправляемому через smtp сервер письму прикреплять большие файлы с диска? |
| Автор: batigoal 22.11.2006, 09:19 | ||
|
| Автор: dron000 22.11.2006, 14:02 |
| Да если бы, мне не нужен код-мне нужна функция которая могла бы передавать большие объекты (blob) или способ передачи их другим образом,а то вот там умничают а мне бы реально помоч. |
| Автор: 3x3 22.11.2006, 14:40 | ||
Попроси администратора ОС написать скрипт, который будет вытаскивать данные из базы, оформлять их соответствующим образом и слать по почте. Зачем делать это изнутри базы данных? Если нужно, что бы письма уходили асинхронно (по событию в базе), используй UTL_FILE для создания нового файла с заданием (внутри, например, пиши ID записи которую внешняя программа должна обработать). А дальше дело админа системы - настроить систему слушать каталог на предмет появлений новых файлов с заданиями и запускать программу отправки почты по их появлении. Нормально должно быть три каталога: в первый оракл кладёт по событию файлик. Из него файлик достаёт слушающий процесс и на время обработки помещает во второй каталог. По завершении отправки, файлик перемещается в третий каталог. Таким образом, просто просмотрев содержимое каталогов всегда можно посмотреть что у тебя "скомандовано" к отправке, что находится в процессе отправки, что уже отправлено. Когда это произошло выясняется по датам создания файлов. Удобно контролировать и разруливать ситуации когда кто-то почему-то не получил почту, а они случаются всегда. Чем это лучше? Во-первых все занимаются своим делом в пределах своей компетенции: базоданщики базой данных, системщики - системой Во-вторых это просто дешевле, нормальный админ и так уже знает более чем один подход к отправке почты из скрипта, выбор готовых решений для ОС побольше чем для конкретной БД. В-третьих, если отправка происходит по событию, не придётся тормозить транзакцию на время отправки почты, но лишь на время создания маленького файлика на диске. |
| Автор: dron000 22.11.2006, 22:31 |
| Да про это я в курсе и скрипт под вин или майлер на другом языке написал бы уже давно,но задача стоит именно так. |
| Автор: 3x3 22.11.2006, 23:43 | ||
Тебе шашечки или что бы ехать? |
| Автор: dron000 29.11.2006, 14:21 |
| Шашечки! |
| Автор: 3x3 1.12.2006, 03:42 | ||
Тогда юзайте вышепосоветованное. Но подумайте о распределении ролей: 1. Ситстемный администратор 2. Админ БД 3. Разработчик БД Когда отлаженная система вдруг перестанет отправлять почту, как определишь кого беспокоить? Кто за что отвечает? Сколько времени займет \\\"делегирование ответственности\\\" туда-сюда и обратно? В предложенной схеме всё просто: Разработчик знает как сформировать письмо и имеет договоренность с ДБА как заявить о своём желании письмо отправить. ДБА знает как сделать это безопасно для базы и имеет договорённость с сисадмином, куда складывать \\\"заявки\\\". Сисадмин ведает доставкой почты и знает как отправлять почту в его виртуальной реальности. В общем случае на каждой роли может быть более одного человека, работающие параллельно или последовательно (ну те же сисадмины на разных уровнях по пути к интернет могут быть разные). А если всем процессом отправки почты заведует исключительно сама база? В какой-то момент по соображениям безопасности админ, который заведует внешним прокси запретит, скажем, коннекты из интранет по портам SMTP. А у тебя девелоперы заточили трафик через внешний SMTP-сервер (ну я утрирую, но даже и так бывает). При этом, о предпринятых мерах безопасности знают админы на уровне того внешнего прокси, через который в мир лазают все филиалы со всех континентов, и только девелоперы знают, что почта ходит через внешний SMTP, но они давно уволились. А промежуточные уровни никогда и не слышали, ни про какую почту из базы, и про саму базу знать не знают, а если бы и знали - ни за что бы не подумали, что она сама по себе испускает какие-то почтовые сообщения, поскольку функционально для другого предназначена. В результате, по жалобе на то, что почта перестала ходить, кому-то год придётся разгребать это хозяйство что бы просто понять почему это случилось. И выродится это всё равно в то, что кто-то это всё переделает на правильный лад. Вы же не ожидаете, что телефон вдруг начнет показывать вам телевизионные передачи? В принципе это, конечно, возможно. Но люди предпочитают другие, более подходящие, девайсы для просмотра телепередач. Так же и с базой - в принципе почту отправлять из неё, конечно, можно. |
| Автор: dron000 12.12.2006, 11:08 |
| Да при чем здесь это все??Есть конкретная задача - ты многого не знаеш и пытаешся насоветовать в организационных моментах которых уже не изменить просто так,рамки таковы!-если бы можно было взять и все так просто перераспределить и переделать то наверно бы никто ни у кого ничего не спрашивал!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Как можно этого не понимать?? Добавлено @ 11:11 Мы и есть разработчики администраторы и соправодители в одном лице. |
| Автор: 3x3 12.12.2006, 20:34 | ||||
Ну так возьми и просвети меня.
1. Тебе переписать вышенаписанное на одно лицо? Типа "Когда отлаженная сложная система вдруг перестанет отправлять почту, как определишь о какой её части беспокоиться? Какая её часть за что отвечает?..." и т.д.? 2. "Мы" в одном лице не бывает. Когда лиц более одного - это много лиц. 3. Даже одно лицо в одном лице себя таки бывает в состоянии забыть что у него куда запихано и где при каких изменениях сломается. 4. Да и плоха та база, которая не мечтает обрасти целым штатом сотрудников |
| Автор: dron000 19.12.2006, 11:34 |
| Ладно,хорошо-допустим я согласен,но как начет того самого скрипта для отправки писем с вложениями-речь то как раз о нем!?? |
| Автор: 3x3 21.12.2006, 19:50 | ||
Ну тогда рассказывай то много, чего мы не знаем: на чем написанный и под какую операционную систему скрипт/утиль нужен? Перечисли в одну строчку, что бы мне было удобнее забить это в google |
| Автор: dron000 22.12.2006, 14:50 |
| Спасибо,я уже зделал. |