Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Indy SMTP кодировка / 19 сообщений из 19, страница 1 из 1
18.12.2003, 13:04
    #32356588
nomorenames
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
Что-то я не нашел, есть ли возможность в Indy SMTP в Delphi 7 установить кодировку исходящего сообщения. Он по умолчанию отправляет текст в KOI8-R.
Если есть, то как поставить?
...
Рейтинг: 0 / 0
18.12.2003, 14:33
    #32356810
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
Я такой возможности там не нашел (хоть и долго искал).
Для кодировки сообщений (тела письма и сабжекта) использую библиотеку - synapse (ее можно в Инете найти).

===============================
Q per
...
Рейтинг: 0 / 0
18.12.2003, 16:13
    #32357024
nomorenames
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
Нашел
Письмо (IdMsgSend) отправляется с помощью idSMTP. Вот в IdMsgSend и задаются два такие важные параметра
IdMsgSend.ContentType := 'text/plain';
IdMsgSend.CharSet := 'Windows-1251';

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
...  
   IdMsgSend.ContentType := 'text/plain';      
   IdMsgSend.CharSet := 'Windows-1251';   
   try
      idSMTP.Send(IdMsgSend);
   finally
      idSMTP.Disconnect;
   end;
...
Рейтинг: 0 / 0
18.12.2003, 16:20
    #32357033
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
И что? Работает? В смысле письмо пришло в нужной кодировке?

===============================
Q per
...
Рейтинг: 0 / 0
18.12.2003, 16:34
    #32357066
nomorenames
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
Ага. И в сабджекте и в теле сообщения все нормально

В противном случае, видимо по умолчанию, ставилось следующее
Content-Type: multipart/mixed; boundary="=_NextPart_2rfkindysadvnqw3nerasdf"
(это из пропертей принятого сообщения)

Сейчас в пропертях: Content-Type: text/plain; charset="Windows-1251" и все читается.
...
Рейтинг: 0 / 0
18.12.2003, 16:38
    #32357079
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
А чем читаете письмо?
А русские буквы тоже читает нормально?

===============================
Q per
...
Рейтинг: 0 / 0
18.12.2003, 16:42
    #32357085
nomorenames
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
Читаю MS Outlook 2000 sp-(9.0.0.6627)
Читается и английский текст и русский везде - subject/body/from. В Outlook Express можно поменять кодировку принудительно, а MS Outlook этого не позволяет.
...
Рейтинг: 0 / 0
19.12.2003, 11:11
    #32357657
smylikov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
to nomorenames
Какая версия Indy ?
...
Рейтинг: 0 / 0
19.12.2003, 11:44
    #32357730
nomorenames
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
Indy 9.00.10
...
Рейтинг: 0 / 0
19.12.2003, 12:03
    #32357772
nomorenames
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
На самом деле не все так однозначно.
В Инди TidMessage есть такая гадость, как MessageParts, т.е. сообщение с вложением представляет из себя сообщение из нескольких частей. Так вот каждой части надо проставить ContentType. Обычно простой текст сообщения (сопроводиловка) требует установки ContentType := 'text/plain'.
Следующий пример посылает только текст без вложения в кодировке Windows-1251 - все читается без проблем как на русском, так и на английском, но стоит только подключить атачмент (см. закоментаренные строки), как настройка сбивается. В проперти принятого сообщения появляется вот такая строка: Content-Type: multipart/mixed; boundary="=_NextPart_2rfkindysadvnqw3nerasdf"; charset="Windows-1251" и кодировка сбивается на KOI8-R

ЗЫ Не забудьте на форму бросить кнопку и поменять адреса на вразумительные.
Код: 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.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdMessageClient, IdSMTP, IdMessage;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  LSMTP: TIdSMTP;
  LMsg: TIdMessage; I:integer;
  Year, Month, Day: Word;
begin
  LSMTP := TIdSMTP.Create(nil);
  LMsg := TIdMessage.Create(LSMTP);
  DecodeDate(Now, Year, Month, Day);
  with LMsg do begin
    Subject := 'MailTest at ' + IntToStr(Day) + IntToStr(Month) + IntToStr(Year);
    Recipients.EMailAddresses := 'address@mail.ru';
    From.Text := 'MailSender';
    ReplyTo.EMailAddresses:= 'reply@address.ru';
    Body.Text := 'Тест на ' + DateToStr(Now) + ' ' + TimeToStr(Now) + ' (English text)';
    CharSet:= 'Windows-1251';
    ContentType :='text/plain';
    Encoding:= meMIME;
//    ПОДКЛЮЧЕНИЕ АТАЧМЕНТА
//    TIdAttachment.Create(LMsg.MessageParts , 'c:\test.txt');
  end;

  with LSMTP do begin
    Host := 'host.ru'; // ВАШ ХОСТ SMTP
// ЕСЛИ К ХОСТУ ПОДКЛЮЧЕНИЕ ПО ЛОГИНУ И ПАРОЛЮ
    Username := 'user_name'; //ВАШ ЛОГИН!!!
    Password:= 'password'; // ВАШ ПАРОЛЬ!!!
    Connect;
    try
      Send(LMsg);
    finally
      ShowMessage('Сообщение отправлено.');
    end;
    Disconnect;
   end;
   FreeAndNil(LMsg);
   FreeAndNil(LSMTP);
end;
end.
...
Рейтинг: 0 / 0
05.01.2004, 18:29
    #32368862
Сашка
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
так все-таки, как корректно отправить/получить аттач, названный русскими буковками? the bat! получает названия аттачментов корректно независимо от установок ContentType для каждой части, а вот собственный pop3-клиент сохраняет названия аттачмента некорректно ...
...
Рейтинг: 0 / 0
06.01.2004, 02:18
    #32369013
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
> Cooper
расслабься - у чела ранняя ейфария ...
если у получателя секретарь - девочка с умом - зеркально противоположном красоте и простым аутглюк експрессом - она серано не прочтет его - ибо там надо по менюхам пошарица и выбрать другую кадировку ... и особливо если на ея ящик валица спам постоянный - то не будит лазить она по меню - и убьет письмо нафиг ...
я с индей долго бился - не помогло ... заголовки вроде мой почтовик не правит - но некоторые версии аутглюков ну напрочь заголовки вложений хз как передают ишо чтонить... и в исходниках инди сплошь и рядом - ето типа не локализовано и ето ... короче - гемор ...
...
Рейтинг: 0 / 0
06.01.2004, 20:20
    #32369800
nomorenames
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
Мил человек КирилоффА, поверхностный ты какой-то, и шумливый. Слазил бы ты в соурсы инди, да посмотрел бы, действительно там стоит отсутствие локализации и хитрая строчка "=_NextPart_2rfkindysadvnqw3nerasdf", но тем способом, который я описал, получается все нормально в кодировке, которую я указал. Есть одно НО, но оно касается сообщений из нескольких частей, то бишь с вложенными файлами, там действительно беда, с которой надо разбираться, да и то не слишком сложно. А для девочки с менюхой в Экспрессе - любая почта не беда, а вот в Аутлуке, тут да... потрудиться надо с кодировкой. Да собна, мое это дело, кодировками заниматься, а твое - словеса пустые бросать туды-сюды. Успехов тебе в нелегком труде.
...
Рейтинг: 0 / 0
06.01.2004, 20:42
    #32369806
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
2 KirillovA

Дык я и расслабился. Просто сам над этим бился не один день (и не одну неделю). Мозги раком стояли. Вот пытался человеку намекнуть, что не все так просто, как кажется.

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

Это точно. У меня на следующей день письма от людей посыпались, что моя рассылка приходит с "кривой" кодировкой. Каждому не объяснишь, что это indy глючная и что нужно в настройка почтовика покапаться, да и не у каждого желание и время на это есть.

авторя с индей долго бился - не помогло ... заголовки вроде мой почтовик не правит - но некоторые версии аутглюков ну напрочь заголовки вложений хз как передают ишо чтонить... и в исходниках инди сплошь и рядом - ето типа не локализовано и ето ... короче - гемор ...

Дык я тоже долго бился. И повторюсь мне помогла библиотека - synapse. Там несложно разобраться в коде без всяких хелпов. Вобщем после этого не один подписчик к моей рассылке претензий не предъявлял. А подписчиков не мало, с почтовиками на любой вкус.

2 nomorenames

Если у Вас всё-таки что-то получится (без всяких там - но есть одно НО!), то сообщите плиз. Буду рад признать, что был неправ и руки у меня карявые. А пока что это Вы словеса бросаете направо и налево, неимея работающего кода.

===============================
Q per Клонированный Усиленный Псевдочеловек для Ежедневного Разрушения
...
Рейтинг: 0 / 0
06.01.2004, 20:51
    #32369808
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
> Cooper
намыль мне на мыло плиз ету библиотеку будь добер... )
...
Рейтинг: 0 / 0
06.01.2004, 21:11
    #32369814
Cooper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
2 KirillovA

Ушло.
===============================
Q per Клонированный Усиленный Псевдочеловек для Ежедневного Разрушения
...
Рейтинг: 0 / 0
06.01.2004, 21:17
    #32369816
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
Благодарю!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
09.06.2018, 20:11
    #39659095
Ater Dominus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
что касается кодировки, я бы рекомендовал вместо 'Windows-1251' написать 'UTF-8'

В первом случае на почту пришла строка Те, so nаs nе vbyvаё, robyt? sylnіsymy , тогда как во втором случае пришло то, что во вложении.

В суть этой строки вникать не нужно, но второй вариант как раз исходный, который и отправлялся, и видно, что Win1251 потратила всю диакритику букв.
...
Рейтинг: 0 / 0
09.06.2018, 20:13
    #39659096
Ater Dominus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy SMTP кодировка
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Indy SMTP кодировка / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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