Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


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

Отправляю на сервер 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 в 08:10.
BlackBelka вне форума   Ответить с цитированием
Старый 12.06.2018, 12:51   #2
Streletz
Профессионал
 
Регистрация: 03.01.2014
Сообщений: 2,584
Репутация: 1059
По умолчанию

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

Я пробовал различные кодировки.
Цитата:
Сообщение от 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


04:04.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru