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

===============================
Q per
...
Рейтинг: 0 / 0
Indy SMTP кодировка
    #32357024
nomorenames
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел
Письмо (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
Indy SMTP кодировка
    #32357033
Фотография Cooper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что? Работает? В смысле письмо пришло в нужной кодировке?

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

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

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

===============================
Q per
...
Рейтинг: 0 / 0
Indy SMTP кодировка
    #32357085
nomorenames
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаю MS Outlook 2000 sp-(9.0.0.6627)
Читается и английский текст и русский везде - subject/body/from. В Outlook Express можно поменять кодировку принудительно, а MS Outlook этого не позволяет.
...
Рейтинг: 0 / 0
Indy SMTP кодировка
    #32357657
smylikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to nomorenames
Какая версия Indy ?
...
Рейтинг: 0 / 0
Indy SMTP кодировка
    #32357730
nomorenames
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Indy 9.00.10
...
Рейтинг: 0 / 0
Indy SMTP кодировка
    #32357772
nomorenames
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле не все так однозначно.
В Инди 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
Indy SMTP кодировка
    #32368862
Сашка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так все-таки, как корректно отправить/получить аттач, названный русскими буковками? the bat! получает названия аттачментов корректно независимо от установок ContentType для каждой части, а вот собственный pop3-клиент сохраняет названия аттачмента некорректно ...
...
Рейтинг: 0 / 0
Indy SMTP кодировка
    #32369013
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Cooper
расслабься - у чела ранняя ейфария ...
если у получателя секретарь - девочка с умом - зеркально противоположном красоте и простым аутглюк експрессом - она серано не прочтет его - ибо там надо по менюхам пошарица и выбрать другую кадировку ... и особливо если на ея ящик валица спам постоянный - то не будит лазить она по меню - и убьет письмо нафиг ...
я с индей долго бился - не помогло ... заголовки вроде мой почтовик не правит - но некоторые версии аутглюков ну напрочь заголовки вложений хз как передают ишо чтонить... и в исходниках инди сплошь и рядом - ето типа не локализовано и ето ... короче - гемор ...
...
Рейтинг: 0 / 0
Indy SMTP кодировка
    #32369800
nomorenames
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мил человек КирилоффА, поверхностный ты какой-то, и шумливый. Слазил бы ты в соурсы инди, да посмотрел бы, действительно там стоит отсутствие локализации и хитрая строчка "=_NextPart_2rfkindysadvnqw3nerasdf", но тем способом, который я описал, получается все нормально в кодировке, которую я указал. Есть одно НО, но оно касается сообщений из нескольких частей, то бишь с вложенными файлами, там действительно беда, с которой надо разбираться, да и то не слишком сложно. А для девочки с менюхой в Экспрессе - любая почта не беда, а вот в Аутлуке, тут да... потрудиться надо с кодировкой. Да собна, мое это дело, кодировками заниматься, а твое - словеса пустые бросать туды-сюды. Успехов тебе в нелегком труде.
...
Рейтинг: 0 / 0
Indy SMTP кодировка
    #32369806
Фотография Cooper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 KirillovA

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

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

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

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

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

2 nomorenames

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

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

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

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

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


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