powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / utl_smtp битые письма в зависимости от длины строки subject
5 сообщений из 5, страница 1 из 1
utl_smtp битые письма в зависимости от длины строки subject
    #39557038
israelshamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Есть процедура для отправки сообщений.
Subject формируется как показано ниже:

Код: plsql
1.
2.
3.
4.
5.
utl_smtp.write_raw_data(mail_conn,
                            utl_raw.cast_to_raw('Subject: =?windows-1251?B?' ||
                                                utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(convert(subject,
                                                                                                                              'CL8MSWIN1251')))) ||
                                                '?='));



Если в subject используются длинные строки(~80-100 символов), приходят битые письма.

Например в поле subject будет отображаться: "=?windows-1251?B?c2RmaW91Z2hzZGlvdWZnaHNpb2R1ZmhnaW9zdWRmaGdpb3N1ZGZoZ2lvc2R1Zmhn"

А в теле письма: "aW9zZGZ1aGdpb3NkZmhn?="

Подскажите, пожалуйста, чтиво, которое поможет решить эту проблему.

Гуглил и RFC 2822 читал, но так и не понял в чем суть.
...
Рейтинг: 0 / 0
utl_smtp битые письма в зависимости от длины строки subject
    #39557040
israelshamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
israelshamir
Например в поле subject будет отображаться: "=?windows-1251?B?c2RmaW91Z2hzZGlvdWZnaHNpb2R1ZmhnaW9zdWRmaGdpb3N1ZGZoZ2lvc2R1Zmhn"

А в теле письма: "aW9zZGZ1aGdpb3NkZmhn?="

Гуглил и RFC 2822 читал, но так и не понял в чем суть.

То есть часть темы выносится в тело сообщения.
...
Рейтинг: 0 / 0
utl_smtp битые письма в зависимости от длины строки subject
    #39557052
ищи mimewords
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
israelshamir,
нашел вот такой вот код, а вообще проще послать себе письмо с длинной темой и посмотреть как закодируется

Код: plsql
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.
      -- encode to base64 mimeword

      FUNCTION MIMEHEADER_ENCODE(s#string VARCHAR2) RETURN VARCHAR2 IS

            BEGIN

               RETURN '=?UTF-8?B?' ||

                    UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.base64_encode(UTL_RAW.CAST_TO_RAW(s#string /* convert(s#string, 'CL8MSWIN1251') ? */ )))

                    ||'?=';

            END;



      -- encode subject, split to mimewords

      FUNCTION subject_encode(subj in varchar2) return varchar2 is

            enc_size  CONSTANT number(2) := 30;

            l_subject  varchar2(300) := subj;

            enc_subj   varchar2(400);

            begin

                 while length (l_subject) > 0 loop



                    if enc_subj is not null then  enc_subj := enc_subj || UTL_TCP.CRLF ||'    '; end if;

                    enc_subj := enc_subj || mimeheader_encode( substr (l_subject,1,enc_size) );



                    l_subject := substr (l_subject,enc_size+1);

                 end loop;

                 return enc_subj;

            end;
...
Рейтинг: 0 / 0
utl_smtp битые письма в зависимости от длины строки subject
    #39557078
israelshamirГуглил и RFC 2822 читал, но так и не понял в чем суть.Ограничение длины строки заголовка. Способ переноса зависит от энкодинга.
...
Рейтинг: 0 / 0
utl_smtp битые письма в зависимости от длины строки subject
    #39557302
israelshamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за помощь.
Вот нашел: www.sql.ru/forum/882738/utl-smtp-send-data-i-zagolovki-zakodirovannye-v-base64
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / utl_smtp битые письма в зависимости от длины строки subject
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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