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

Вниз

Как послать e-mail с русским текстом.   Найти похожие ветки 

 
Inna_Z   (2007-06-01 12:29) [0]

Пробовала посылать при помощи стандартных компонент
 TIdSMTP, TIdMessage но возникли проблемы с кодировкой.

 Кто знает какие-то хорошие компоненты
 или расскажите как можно затставить правильно работать эти?

  P.S. Отправленную почту получала аутлуком


 
Плохиш ©   (2007-06-01 12:38) [1]

TIdMessagePart.ContentType


 
Savek   (2007-06-01 12:43) [2]

Я проблемы с кодировкой решил вот так:

IdMessage.From.Name:=EncodeHeader(eFName.Text,C,"Q",h,"windows-1251");
IdMessage.Subject:=EncodeHeader(eTema.Text,C,"Q",h,"windows-1251");
//и т.д.


 
clickmaker ©   (2007-06-01 12:43) [3]

TIdMessagePart.CharSet?


 
Savek   (2007-06-01 12:44) [4]

Я проблемы с кодировкой решил вот так:

IdMessage.From.Name:=EncodeHeader(eFName.Text,C,"Q",h,"windows-1251");
IdMessage.Subject:=EncodeHeader(eTema.Text,C,"Q",h,"windows-1251");
//и т.д.


 
Inna_Z   (2007-06-01 12:44) [5]

Спасибо.
 Разобралась

 В аутлуке надо было выбрать кодировку
Cyrillic Windows

 Оказывается всё было просто :-)


 
Inna_Z   (2007-06-01 12:49) [6]

А что за функция EncodeHeader?
 Откуда она?


 
clickmaker ©   (2007-06-01 12:59) [7]


> [6] Inna_Z   (01.06.07 12:49)

у меня она тут живет
D:\Delphi7\Indy10\Protocols\IdCoderHeader.pas

у тебя наверно где-то в том же районе


 
Anatoly Podgoretsky ©   (2007-06-01 13:16) [8]


> Оказывается всё было просто :-)

Не так все просто и главное неправильно.
Что бы не было проблем со чтением писем, надо чтобы в письме были указаны кодировки, для темы и для текста.


 
ANB ©   (2007-06-01 13:17) [9]


> В аутлуке надо было выбрать кодировку
> Cyrillic Windows

аутлук должен сам понимать кодировку. Для сего ему надо ее объяснить.
Письмо шлешь чисто текстом или с аттачами ?


 
Inna_Z   (2007-06-01 18:39) [10]

Надо вобщем чтоб было и текст письма на русском и заголовок (с ним всё кстати нормально) и прекреплённые файлы

 шлю я его пока так:

 // Настраиваем SMTP
 SMTP.Host := FHost;
 SMTP.Port := FPort;

 // Формируем содержимое письма
 MailMessage.From.Address := "Inna@asbase.ntu-kpi.kiev.ua";
 MailMessage.Recipients.EMailAddresses := FEmail;
 MailMessage.ContentType := "plain/text";
 MailMessage.Subject := "Проверка связи";
 MailMessage.Body.Text := ReportText;

 //send mail
 try
   try
     SMTP.Connect(1000);
     SMTP.SendMsg(MailMessage);
   except
     
   end;
 finally

   if SMTP.Connected then SMTP.Disconnect;
 end;

Как указать ему правильно кодировку?
есть свойство CharSet
в делфи перечисленны варианты

            US-ASCII
ISO-8859-1
ISO-8859-2
ISO-8859-3
ISO-8859-4
ISO-8859-5
ISO-8859-6
ISO-8859-7
ISO-8859-8
ISO-8859-9
ISO-8859-10

можно ли задавать другие?


 
Inna_Z   (2007-06-01 18:40) [11]

Пока без прикреплённых файлов шлю


 
TStas ©   (2007-06-01 20:46) [12]

Вот этот рабочий код, взятый откуда-то с форума:
uses Mapi, IniFiles, CommonUnit, TuneUnit, MsgFormUnit, HDDInfo;
const
 FileName = "MailAddresses.dat";
 Section = "Main";
 Value = "ItemIndex";
 TextFileName = "Распечатка.txt";

function SendEMail(Handle: THandle; Mail: TStrings): Cardinal;
type
TAttachAccessArray = array [0..0] of TMapiFileDesc;
PAttachAccessArray = ^TAttachAccessArray;
var
MapiMessage: TMapiMessage;
Receip: TMapiRecipDesc;
Attachments: PAttachAccessArray;
AttachCount: Integer;
i1: integer;
FileName: string;
dwRet: Cardinal;
MAPI_Session: Cardinal;
WndList: Pointer;
begin
dwRet := MapiLogon(Handle,
  PChar(""),
  PChar(""),
  MAPI_LOGON_UI or MAPI_NEW_SESSION,
  0, @MAPI_Session);

if (dwRet <> SUCCESS_SUCCESS) then
begin
  MessageBox(Handle,
    PChar("Error while trying to send email"),
    PChar("Error"),
    MB_ICONERROR or MB_OK);
end
else
begin
  FillChar(MapiMessage, SizeOf(MapiMessage), #0);
  Attachments := nil;
  FillChar(Receip, SizeOf(Receip), #0);

  if Mail.Values["to"] <> "" then
  begin
    Receip.ulReserved := 0;
    Receip.ulRecipClass := MAPI_TO;
    Receip.lpszName := StrNew(PChar(Mail.Values["to"]));
    Receip.lpszAddress := StrNew(PChar("SMTP:" + Mail.Values["to"]));
    Receip.ulEIDSize := 0;
    MapiMessage.nRecipCount := 1;
    MapiMessage.lpRecips := @Receip;
  end;

  AttachCount := 0;

  for i1 := 0 to MaxInt do
  begin
    if Mail.Values["attachment" + IntToStr(i1)] = "" then
      break;
    Inc(AttachCount);
  end;

  if AttachCount > 0 then
  begin
    GetMem(Attachments, SizeOf(TMapiFileDesc) * AttachCount);

    for i1 := 0 to AttachCount - 1 do
    begin
      FileName := Mail.Values["attachment" + IntToStr(i1)];
      Attachments[i1].ulReserved := 0;
      Attachments[i1].flFlags := 0;
      Attachments[i1].nPosition := ULONG($FFFFFFFF);
      Attachments[i1].lpszPathName := StrNew(PChar(FileName));
      Attachments[i1].lpszFileName :=
        StrNew(PChar(ExtractFileName(FileName)));
      Attachments[i1].lpFileType := nil;
    end;
    MapiMessage.nFileCount := AttachCount;
    MapiMessage.lpFiles := @Attachments^;
  end;

  if Mail.Values["subject"] <> "" then
    MapiMessage.lpszSubject := StrNew(PChar(Mail.Values["subject"]));
  if Mail.Values["body"] <> "" then
    MapiMessage.lpszNoteText := StrNew(PChar(Mail.Values["body"]));

  WndList := DisableTaskWindows(0);
  try
  Result := MapiSendMail(MAPI_Session, Handle,
    MapiMessage, MAPI_DIALOG, 0);
  finally
    EnableTaskWindows( WndList );
  end;

  for i1 := 0 to AttachCount - 1 do
  begin
    StrDispose(Attachments[i1].lpszPathName);
    StrDispose(Attachments[i1].lpszFileName);
  end;

  if Assigned(MapiMessage.lpszSubject) then
    StrDispose(MapiMessage.lpszSubject);
  if Assigned(MapiMessage.lpszNoteText) then
    StrDispose(MapiMessage.lpszNoteText);
  if Assigned(Receip.lpszAddress) then
    StrDispose(Receip.lpszAddress);
  if Assigned(Receip.lpszName) then
    StrDispose(Receip.lpszName);
  MapiLogOff(MAPI_Session, Handle, 0, 0);
end;
end;



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

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

Наверх




Память: 0.51 MB
Время: 0.02 c
2-1184580673
httpbeginer
2007-07-16 14:11
2007.08.12
создание строки HTTP запроса


2-1184695162
Knob
2007-07-17 21:59
2007.08.12
Блокировка крестика но не на форме


1-1181074659
-Mouse-
2007-06-06 00:17
2007.08.12
Проблема с определением формулы математической задачи.


15-1184238783
Megabyte
2007-07-12 15:13
2007.08.12
Правила формирования xml-файлов


15-1183600174
oldman
2007-07-05 05:49
2007.08.12
Олимпиаде в России быть!!!