|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
В долгих поисках рабочего решения так и не смог найти ничего ценного. Пришлось почитать RFC и написать свое. Надеюсь кому-нибудь пригодится. Пакет позволяет добавлять несколько вложений, что немаловажно - так это включая бинарники. Возможно, кто-нибудь в благодарность поможет мне усовершенствовать пакет такими вещами как авторизация, или оптимизация. Пользуйтесь ;) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2010, 19:53 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
Доработал пакет, убрал лишнее, сделал разбор входящих емайлов (можно отправлять на несколько емайлов), добавил приоритет письма, добавил авторизацию. Сделал необязательным адрес отправителя (по умолчанию mail@имя_сервера). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2010, 09:32 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
chameleon82, спс ) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2010, 11:23 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
это ох какое спсб ------------- свЕдение данных в таблицу уже есть СЕКРЕТНО --- ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2010, 11:34 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
chameleon82, Кстати, в пакете решена проблема того что тело сообщения в UTL_SMTP должно быть не больше 32K? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2010, 17:38 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
compheadchameleon82, Кстати, в пакете решена проблема того что тело сообщения в UTL_SMTP должно быть не больше 32K? Кстати не проверял ) Я тут еще подладил пакет на длинные названия в заголовке. Проверю, если что исправлю, обновлю пост :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2010, 12:13 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
Правильно понимаю, что файлы для атачментов должны лежать на сервере? И ещё вопрос, цифровой подписью не баловались? т.е. перед отправкой письма подписать его цифровой подписью. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2010, 14:54 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
Ura!Правильно понимаю, что файлы для атачментов должны лежать на сервере? И ещё вопрос, цифровой подписью не баловались? т.е. перед отправкой письма подписать его цифровой подписью. Да. Файлы должны быть на сервере в одной из директорий select * from all_directories, туда их при необходимости можно скопировать. Размер и количество отправляемых файлов неограничены (ну по крайней мере можно отправить сразу несколько картинок по несколько мегабайт или несколько больших отчетов одновременно). Цифровая подпись, это чтото интересное. Сомневаюсь, что здесь такое возможно, т.к. письмо отдается смтп серверу последовательно (хотя если его сначала сохранить в blob, то может и получится). Хотя если сможете доработать пакет, было бы интересно посмотреть на реализацию :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2010, 08:22 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
chameleon82В долгих поисках рабочего решения так и не смог найти ничего ценного. Пришлось почитать RFC и написать свое. Надеюсь кому-нибудь пригодится. Пакет позволяет добавлять несколько вложений, что немаловажно - так это включая бинарники. Возможно, кто-нибудь в благодарность поможет мне усовершенствовать пакет такими вещами как авторизация, или оптимизация. Пользуйтесь ;) [/src] Спасибо! ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2010, 10:45 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2010, 13:37 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2010, 13:45 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
Сразу можно отметить, что хардкодить в такие пакеты ansi1251 - не очень разумная идея. Даже если Вы не верите что Ваше детище пригодится кому-нибудь в просвещенной Европе, то подумйте хотя бы о мультиязычных текстах в рамках таможенного союза :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2010, 15:19 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
chameleon82 - СПАСИБО! Внес незначительные изменение в авторизацию в фрагменте кода, добавив exit Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
В моем случае в replies(x).text фраза 'AUTH' встречалась дважды, что вызывало ошибку при повторной авторизации. Еще планирую добавить к пакету таблицу лог, в которой писать отправлено/не отравлено сообщение, когда и т.п. Нужно для автоматической работы в джобах и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2010, 16:26 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
chameleon82, еще предложение менять имена границ подразделов(boundary), например S7RUMailPart-001-xxxxxxxx-xxxxxxxxxxxxxxxxx S7RUMailPart-002-xxxxxxxx-xxxxxxxxxxxxxxxxx где ххх может быть счетчиком, уникальным идентификатором, цифровой сверткой/подписью и т.д. и тебе учет отправленных и сормовцам метки :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2010, 16:56 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
d.nemolchevchameleon82, а JavaMail чем Вас не устроил? Хотелось чисто PL/SQL-ное решение, тем более оно не такое сложное. Да и если следовать словам Томаса Кайта - "зачем использовать java, если можно сделать на pl/sql?". Единтсвтенное пока, что тут может пригодиться из java при отправке письма - это архивирование вложений (но это можно сделать и другими средствами). andrey_anonymousСразу можно отметить, что хардкодить в такие пакеты ansi1251 - не очень разумная идея. Даже если Вы не верите что Ваше детище пригодится кому-нибудь в просвещенной Европе, то подумйте хотя бы о мультиязычных текстах в рамках таможенного союза :) пакет собран на коленке ))) надо проработать этот вопрос IgorDchameleon82 - СПАСИБО! Внес незначительные изменение в авторизацию в фрагменте кода, добавив exit И вам спасибо ;) dba123chameleon82, еще предложение - менять имена границ подразделов(boundary) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2010, 07:54 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
dba123chameleon82, еще предложение менять имена границ подразделов(boundary), например S7RUMailPart-001-xxxxxxxx-xxxxxxxxxxxxxxxxx S7RUMailPart-002-xxxxxxxx-xxxxxxxxxxxxxxxxx где ххх может быть счетчиком, уникальным идентификатором, цифровой сверткой/подписью и т.д. и тебе учет отправленных и сормовцам метки :) надо обдумать как это сделать. идея интересная. Думаю, можно внедрить допнастройками пакета. А вот где хранить счетчик? создавать ради этого сиквенс??? --- Обновил пакет. Убрал немного мусора, перевел все на UTF-8 (протестил на бате и аутлуке), исправил ошибку с длинным именем заголовка письма и именами отправителей/получателей и что-то еще по мелочи, и замечание от IgorD. Вот моя последняя версия ) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2010, 08:17 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
Очень интересное решение. У меня размер сообщения больше 32Кб? Как отправить такое сообщение? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2010, 19:57 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
у меня всегда возникает вопрос. зачем тулить этот левый функцианал. и каким то диким извратом его реализовывать. не лучше ли потратив гораздо меньше времени по быренькому склепать службу/демон или задание шедулера/крона которое выколупает из БД необходимые данные и разошлет там чего-то. тем более что такие рассыльщики имеют свойство расползаться до монстров с тяжелой логикой. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2010, 20:13 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
вопросецу меня всегда возникает вопрос. зачем тулить этот левый функцианал. и каким то диким извратом его реализовывать. не лучше ли потратив гораздо меньше времени по быренькому склепать службу/демон или задание шедулера/крона которое выколупает из БД необходимые данные и разошлет там чего-то. тем более что такие рассыльщики имеют свойство расползаться до монстров с тяжелой логикой.Это не "левый функционал". Это нормальный подход программиста Oracle Database использовать штатные возможности Oracle Database. Для этого требуется только хорошее знание PL/SQL и предлагаемых для него штатных пакетов. Не требуются знания: - как "по быренькому склепать службу/демон или задание шедулера/крона" - как "выколупать из БД необходимые данные" во внешние файлы/места - как реализовать вне БД "монстров с тяжелой логикой" То есть не требуется никакого "дикого изврата", внешнего по отношению к БД. Знаешь PL/SQL - пользуйся им. PL/SQL хватает практически для всего. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2010, 20:28 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
вопросецу меня всегда возникает вопрос. зачем тулить этот левый функцианал. и каким то диким извратом его реализовывать. не лучше ли потратив гораздо меньше времени по быренькому склепать службу/демон или задание шедулера/крона которое выколупает из БД необходимые данные и разошлет там чего-то. тем более что такие рассыльщики имеют свойство расползаться до монстров с тяжелой логикой. Вот есть несколько прог, которые запускаюся по расписанию на серваке x86 9.2.0.7 Сейчас переехал на сервак 10.2.0.4. по x64 и проги на 32 разряда не работают из-за: Код: plaintext 1.
Если бы все было сделано средствами оракла проблем при переходе небыло. Для меня, что одна из полезностей этого пакета именно в этом. Переписывать под x64 конечно можно, но проц у меня не понимает такие ОС. Пакет полезный, но тело сообщения ограничено 32 К !!! HELP!!!! Помогите! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2010, 20:39 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
_Ildar_, чтобы x86_32 прога жила под x86_64 нужен клиент x86_32 а почему же вы не протестировали работоспособность ПО прежде чем осуществлять переход? я так понимаю это продакшн. прога может упасть н только из-за того что не может в свое 32-bit адрасное пространство грузить x86_64 модули :). но может и повезти. --- впринципе мысльвысказавшихся я понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2010, 20:47 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
вопросец_Ildar_, чтобы x86_32 прога жила под x86_64 нужен клиент x86_32 Да. Нужен, то не устанавливается клиент x86 на x64 платформу! Хоть ты тресни! вопросец а почему же вы не протестировали работоспособность ПО прежде чем осуществлять переход? я так понимаю это продакшн. прога может упасть н только из-за того что не может в свое 32-bit адрасное пространство грузить x86_64 модули :). но может и повезти. Не повезло. От такого невезения и ищу решение. Обойти бы это ограничение по размеру тела письма и все было бы ОК! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2010, 21:02 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
_Ildar_, не правда ваша. клиент x86_32 работает под x86_64. (Oracle Client) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2010, 21:35 |
|
Передача письма с вложением. Готовое решение
|
|||
---|---|---|---|
#18+
_Ildar_Обойти бы это ограничение по размеру тела письма и все было бы ОК! Шлите письма html-аттачем, как поступают все современные спамеры :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2010, 21:37 |
|
|
start [/forum/topic.php?fid=52&msg=36649138&tid=1879549]: |
0ms |
get settings: |
4ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
62ms |
get topic data: |
2ms |
get forum data: |
1ms |
get page messages: |
655ms |
get tp. blocked users: |
0ms |
others: | 397ms |
total: | 1128ms |
0 / 0 |