Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2018, 05:33   #1
BlackBelka
Новичок
Джуниор
 
Регистрация: 12.06.2018
Сообщений: 2
По умолчанию Отправка почты и кодировка

Отправляю на сервер mailru письмо содержащие кириллицу. На почту приходит письмо с "???". Читал про способы кодировки, но так толком ничего и не помогло. Подскажите способ кодировки и в какой кодировке mailru принимает письма. Использую Delphi 2010.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
SMTP:TIdSMTP;
Email:TIdMessage;
s: string;
begin

s:= Utf8ToAnsi(Memo1.Text);
  SMTP := TIdSMTP.Create(nil);
  Email := TIdMessage.Create(nil);
  SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);


  try
    SSLHandler.SSLOptions.Method := sslvTLSv1;
    SSLHandler.SSLOptions.Mode := sslmUnassigned;
    SSLHandler.SSLOptions.VerifyMode := [];
    SSLHandler.SSLOptions.VerifyDepth := 0;

    SMTP.IOHandler := SSLHandler;
    SMTP.IOHandler.DefStringEncoding:=TEncoding.UTF8;
    SMTP.Host := 'smtp.mail.ru';
    SMTP.Port := 465;
    SMTP.Username := 'мояпочта@mail.ru';
    SMTP.Password := '12345';
    SMTP.UseTLS := utUseExplicitTLS;
    SMTP.AuthType:=satDefault;

    Email.From.Address := 'мояпочта@mail.ru';
    Email.Recipients.EmailAddresses := 'другаяпочта@mail.ru';
    Email.Subject := 'Hello world!';
    Email.Body.Text :=s ;

    SMTP.Connect;
    SMTP.Send(Email);
    SMTP.Disconnect;

  finally
    SMTP.Free;
    Email.Free;
    SSLHandler.Free;
  end;
end;

Последний раз редактировалось BlackBelka; 12.06.2018 в 07:10.
BlackBelka вне форума Ответить с цитированием
Старый 12.06.2018, 11:51   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от BlackBelka Посмотреть сообщение
На почту приходит письмо с "???"
Так и должно быть. Ведь Вы отправляете письмо в ANSI.
Цитата:
Сообщение от BlackBelka Посмотреть сообщение
s:= Utf8ToAnsi(Memo1.Text);
Сейчас кодировка UTF-8 уже давно де-факто стала стандартом по умолчанию. Попробуйте отправить в письмо в этой кодировке.
Streletz вне форума Ответить с цитированием
Старый 12.06.2018, 17:26   #3
BlackBelka
Новичок
Джуниор
 
Регистрация: 12.06.2018
Сообщений: 2
По умолчанию

Я пробовал различные кодировки.
Цитата:
Сообщение от Streletz Посмотреть сообщение
Сейчас кодировка UTF-8 уже давно де-факто стала стандартом
Пробовал ещё нечто подобное
Цитата:
var
B: TBytes;
begin
B:=BytesOf(Memo1.Text);
b:=TEncoding.Convert(TEncoding.Defa ult,TEncoding.UTF8,B);
.
.
.
Email.Body.Text :=StringOf(B);
end;
Естественно ставя разные кодировки, но безрезультатно. Может я что-то не так делаю?
BlackBelka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка почты. broom15 HTML и CSS 13 14.04.2016 13:57
отправка почты sys user Работа с сетью в Delphi 7 24.11.2013 13:27
Отправка почты Gurt87 Работа с сетью в Delphi 1 24.03.2010 22:51
Отправка почты Fenix Nexsais Работа с сетью в Delphi 5 06.09.2007 22:27
Отправка почты Mikola PHP 4 12.08.2007 04:17