Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.28;
Скачать: CL | DM;

Вниз

idMessage Subject/From ISO-8859-1   Найти похожие ветки 

 
Прогер   (2007-01-04 09:37) [0]

Каким образом указать кодировку в поле "Тема"? Всегда получается Subject: =?ISO-8859-1? ... . А мне нужна windows-1251


 
umbra ©   (2007-01-04 10:45) [1]

так и написать. Если не ошибаюсь,
=?windows-1251?B?{текст в Base64}=


 
Прогер   (2007-01-04 11:19) [2]


> так и написать. =?windows-1251?


Я работаю с компонентом idSMTP. Вопрос в том, как это записать? В свойство "Тема" пишется тема письма без указания кодировки - просто текст, как в почтовике. А компонент самостоятельно генерирует значение поля "Subject" в заголовке сообщения. Вопрос: как повлиять на этот процесс? Сама кодировка ISO-8859-1 (она же Latin-1) не поддерживает кириллицу (однако Outlook каким-то чудом отображает всё правильно, а вот TheBat показывает крякозябру).


 
umbra ©   (2007-01-04 11:50) [3]


> пишется тема письма без указания кодировки - просто текст,
>  как в почтовике

согласно стандарту в теме могут быть только печатные символы с кодами  меньше 128 (за исключением пробела и нек-рых других символов). Чтобы правильно отображалась тема на, допустим, русском языке (т.е. в которой есть символы с кодами больше 127) напишите туда не просто текст, а =?windows-1251?B?{ваша тема в Base64}=


 
Прогер   (2007-01-04 13:34) [4]


function SendLetter(ARecpt, AReplyTo, AFromName, ACopy, AHdnCopy, ASubj: string; ABody, AAtthFls: TStringList; ASMTPHost: string; ASMTPPrt: integer; AUser, APassw: string): boolean;
var
 i: integer;
 SMTP: TIdSMTP;  
 Msg : TidMessage;
begin
 SMTP:= TIdSMTP.Create(NIL);
 Msg:= TIdMessage.Create(NIL);
 
 with SMTP do begin
   Host:= ASMTPHost;
   Port:= ASMTPPrt;
   Username:= AUser;
   Password:= APassw;
   Connect(5000);
   with Msg do begin
     AddHeader("X-Mailer: Mail sender 1.0");
     with TIdEncoderMIME.Create(NIL) do begin
       ASubj:= Encode(ASubj);
       AFromName:= Encode(AFromName);
       Free;
     end;  

     ExtraHeaders.Add("Subject: =?windows-1251?B?" + ASubj + "=?=");
     ExtraHeaders.Add("From: =?windows-1251?B?" + AFromName + "=?= <" + AReplyTo + ">");
     Body.Text:= " ";
     CharSet:= "windows-1251";
     ContentType:= "text/html";
     Recipients.EMailAddresses:= ARecpt;
     ReplyTo.EMailAddresses:= AReplyTo;
     CCList.EMailAddresses:= ACopy;
     BccList.EMailAddresses:= AHdnCopy;
     for i:= 0 to AAtthFls.Count-1 do
        TIdAttachment.Create(MessageParts, AAtthFls[i]);
   Send(Msg);
   Disconnect;
   Free;
 end;
 
 Msg.Free;

 Result:= True;
end;


Поля "Тема", "От" заполнять я начился, спасибо! Теперь их читает как Outlook, так и TheBat.

Теперь вопрос по телу письма. TheBat читает всё хорошо, можно даже не указывать тип содержимого и кодировку. А вот Outlook показывает крякозябру. И непонятно, как в Indy указать, какое содержимое и в какой кодировке ты отправляешь. Подскажите, плиз!


 
umbra ©   (2007-01-04 15:02) [5]

если Вы хотите добавить к письму хтмл, то надо добавить еще одну MessagePart, указать правильный контент-тип и в тело добавить код хтмл


 
Прогер   (2007-01-05 06:40) [6]


     idtTextPart := TIdText.Create(MessageParts, NIL);
     idtTextPart.ContentType := "text/plane; charset=windows-1251";
     idtTextPart.Body.Text := "Собственно сообщение";


Получаем письмо, в котором нет этого текста:

Return-Path: <>
Delivered-To: 27-gennady@manager.kz
Received: (qmail 12073 invoked from network); 5 Jan 2007 09:30:19 +0600
Received: from smtp.ducat.kz (HELO ducat.kz) (212.116.224.170)
 by 87.247.20.75 with (DES-CBC3-SHA encrypted) SMTP; 5 Jan 2007 09:30:19 +0600
X-SpamCatcher-Score: 2 [X]
Received: from [212.116.244.202] (HELO man_05_xp)
 by ducat.kz (CommuniGate Pro SMTP 5.1c.5)
 with ESMTP id 117699; Fri, 05 Jan 2007 09:30:32 +0600
X-Mailer: Mail sender 1.0
To: test@mediasystem.kz
Content-Type: multipart/mixed; boundary="=_NextPart_2rfkindysadvnqw3nerasdf"
MIME-Version: 1.0
Reply-To: test@mediasystem.kz
Date: Fri, 5 Jan 2007 09:33:09 +0600
X-Priority: 3
X-Library: Indy 9.00.10
Subject: =?windows-1251?B?0ODx8fvr6uAg7uHn7vDu4g===?=
From: =?windows-1251?B?0ODx8fvr/Pno6iDu4efu8O7iIDE==?= <test@mediasystem.kz>
Message-ID: <auto-000000117699@ducat.kz>
X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on node1.webspace.kz
X-Spam-Level: ****
X-Spam-Status: No, hits=4.3 required=7.0 tests=MIME_BOUND_NEXTPART,
       MIME_BOUND_RKFINDY,X_LIBRARY autolearn=no version=2.63

--=_NextPart_2rfkindysadvnqw3nerasdf
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

--=_NextPart_2rfkindysadvnqw3nerasdf
Content-Type: application/octet-stream;
       name="555_03-01-2007~11-31-14.rar"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
       filename="555_03-01-2007~11-31-14.rar"

UmFyIRoHAM+QcwAADQAAAAAAAAA8gHQgkm4AoQAAAEYKAAACFHkBhtxbIzYdNUkAIAAAAERnc3RT
ZW5kZXJcX0dlbmVyYWxGb2xkZXJcNTU1XJKu56XnreupIOCo4eOtrqouYm1wAAT1HICQRzVVRz1L
ORcgQDiAYPCBkAIA8FxCMQgYzMm+EW/9dyejwR7PgT4A8Hm+/+OKVl7LkQwOc3Z2T/hQwYpCEs11
L41boGmu+118BxSWyX4KGwyxYTYv25cdp2H+Kts+phJ7nqPNDHykON2uRu7SB8TADAPgkCBCFh7r
0Gql0MOlgBoy2+oigWT8sdZRcPmLgDcSvq56pPOaXjP6DHR6J8pTAuuEM0xZXsqnn5ixokjJ3Y/H
//BqrFOixD17AEAHAA==

--=_NextPart_2rfkindysadvnqw3nerasdf--


 
Anatoly Podgoretsky ©   (2007-01-05 09:57) [7]

Информация принята к сведенью, но она не несет никакой практической пользы, мало ли у кого нет текста.


 
umbra ©   (2007-01-05 11:00) [8]


> Content-Transfer-Encoding: 7bit

это значит, что разрешены только символы с кодами меньше 128. Ваша фраза состоит из русских символов с кодами больше 127.


 
Anatoly Podgoretsky ©   (2007-01-05 13:22) [9]

> umbra  (05.01.2007 11:00:08)  [8]

Если бы это был вопрос, то я бы указал в чем проблема.
А так нежданным советчикам дают по шее.
Информация просто принята для сведенья, интереса не представляет.


 
Прогер   (2007-01-05 13:26) [10]


> не несет никакой практической пользы, мало ли у кого нет
> текста.

Это Вы к тому, что мне заняться нечем и вылез на форум?


 
umbra ©   (2007-01-05 13:32) [11]

Это Anatoly Podgoretsky © к тому, что в постах надо обрисовывать проблему и задавать вопросы


 
Anatoly Podgoretsky ©   (2007-01-05 13:39) [12]

> Прогер  (05.01.2007 13:26:10)  [10]

Кому же еще, тебе конечно.


 
Anatoly Podgoretsky ©   (2007-01-05 13:39) [13]

> umbra  (05.01.2007 13:32:11)  [11]

Вопроса нет, есть константация факта, а это лучше в другую конференцию, в Прочее. Там и посмеемся.


 
Прогер   (2007-01-05 13:50) [14]

Ну что ж... Модератору: просьба удалить тему.


 
umbra ©   (2007-01-05 14:01) [15]

2 Прогер   (05.01.07 13:50) [14]

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

--=_NextPart_2rfkindysadvnqw3nerasdf
Content-Type: text/plain; charset=windows-1251
Content-transfer-encoding: base64 // или quoted-printable
//дальше идет соответствующим образом кодированный текст
--=_NextPart_2rfkindysadvnqw3nerasdf



Страницы: 1 вся ветка

Текущий архив: 2007.01.28;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.039 c
15-1168315256
Slider007
2007-01-09 07:00
2007.01.28
С днем рождения ! 9 января


15-1166889146
vidiv
2006-12-23 18:52
2007.01.28
Два монитора и оверлеи


2-1168331690
DelphiLexx
2007-01-09 11:34
2007.01.28
Как в DBGrid e вычислить Top и Bottom последней записи


15-1168183253
Подключаю бабушку
2007-01-07 18:20
2007.01.28
МТС gprs


2-1168102357
Sholah_Weras
2007-01-06 19:52
2007.01.28
И таки опять поиск необходимых слов в строке.