0 / 0 / 1
Регистрация: 20.10.2016
Сообщений: 86
1

Smtp почта, проблемы с кодировкой

03.04.2017, 06:52. Показов 1020. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте начал обучаться отправке почты все вроде отправляется но почему то толи с кодировкой толи еще с чем то на почту приходит непонятные слова
Delphi
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
IdSMTP1.Disconnect;                                          // Отключаем Smtp Для редактирования его свойств
  IdSocksInfo1.Authentication:=saNoAuthentication;             // Выставляем значение - Без аутентификации
  IdSocksInfo1.Port:=465;                                     // Порт по которому мы будем связываться
  IdSocksInfo1.Version:=svNoSocks;                             // ...
 
  IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:=sslvTLSv1;   // Метод шифрования
  IdMessage1.Clear;                                            // Очищаем письмо
  IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;           // устанавливаем SSL Handler для IdPOP3 SMTP
  IdSMTP1.UseTLS := utUseImplicitTLS;                          // Выставляем значение - использовать неявный TSL
  IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1; // Метод шифрования
  IdSMTP1.Host := 'smtp.mail.ru';                            // Хост к которому мы подключимся
  IdSMTP1.Port := 465;                                        // Порт по которому мы будем связываться
  IdSMTP1.AuthType := atDefault;                              // Тип аутентификации: Login/Password
  IdSMTP1.UserName := edit1.Text;                             // Логин от нашей почты
  IdSMTP1.Password := edit2.Text;                           // Пароль от нашей почты
  IdMessage1.From.Name :='Менеджер';                           // Адресат Имя или подпись
  IdMessage1.From.Address := edit1.text;                      // Адресат Email
  IdMessage1.Body.Text:='Здравствуйте это ваш отчет';                                // Текст письма
  IdMessage1.Subject:='База данных';                                  // Тема которая будет отображаться сверху письма
  idMessage1.Recipients.EMailAddresses:=edit3.text;  // Адресант Email
 
  IdSMTP1.Connect;                                             // Пытаемся подключиться...
  if IdSMTP1.Connected=True then  begin IdSMTP1.Send(IdMessage1);
  showmessage('Сообщения отправлено'); end else ShowMessage('Сообщение не было отправлено!');
  IdSMTP1.Disconnect;                                          // По завершению мы отключаемся
    end;
И как сделать проверку правильности логина и пароля почты а также проверку есть ли интернет соединения
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2017, 06:52
Ответы с готовыми решениями:

SMTP Почта, не работает кодировка и программа без текстового файла
Привет народ, как решить проблему с кодировкой "Memo"? Не могу нормально писать письма кириллицей,...

Почта, работающая с протоколами pop3 и smtp
Ребят, здравствуйте, кто-нибудь сталкивался с написанием программы для работы с почтой...

Исходящая Почта Smtp С Разных Интернет-доменов
Здравствуйте, коллеги! Как разрулить почтовые потоки SMTP от разных интернет-доменов в рамках...

Проблемы с инетом, не отправляется почта, проблемы со связью с другой организацией
Здравствуйте. Есть проблемка. Такая ситуация - Организация. Компьютеры подключены по локалке....

6
5615 / 4387 / 1398
Регистрация: 14.04.2014
Сообщений: 19,631
Записей в блоге: 20
03.04.2017, 10:30 2
наличие интернета проверяется обычно попыткой сделать http.get или http.head на к-нить известный хост типа google.com

правильность логина и пароля почты - аналогично. если неправильные - получите ошибку. а как еще?

про кодировку видел посты, но не стал искать за вас. насколько я помню, там еще заголовок и тело письма идут в разных кодировках...
1
0 / 0 / 1
Регистрация: 20.10.2016
Сообщений: 86
04.04.2017, 08:28  [ТС] 3
Благодарю, На счет проверки интернета не думаю через проверку доступности к какому то ресурсу так как указанный ресурс может быть не доступен а интернет есть
кодировку решил таким способом в имени адресата и темы почты нужно вставить созданную функцию
Delphi
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
const
  WinR: Array[0..66] of Char = ('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и',
    'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т',
    'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь',
    'э', 'ю', 'я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё',
    'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П',
    'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ',
    'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', '№');
  KoiR: Array[0..66] of Char = ('Б', 'В', 'Ч', 'З', 'Д', 'Е', 'Ј', 'Ц', 'Ъ', 'Й',
    'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'Т', 'У', 'Ф',
    'Х', 'Ж', 'И', 'Г' ,'Ю', 'Ы', 'Э', 'Я', 'Щ', 'Ш',
    'Ь', 'А', 'С', 'б', 'в', 'ч', 'з', 'д', 'е', 'і',
    'ц', 'ъ', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р',
    'т', 'у', 'ф', 'х', 'ж', 'и', 'г', 'ю', 'ы', 'э',
    'я', 'щ', 'ш', 'ь', 'а', 'с', '?');
//Из Cyrillic Windows-1251 в Cyrillic (KOI8-R)
function WinRToKoiR (aStr: String): String;
var
  i, j, Index: Integer;
begin
   Result := EmptyStr;
  for i := 1 to Length(aStr) do
   begin
    Index := -1;
     for j := Low(WinR) to High(WinR) do
      if WinR[j] = aStr[i] then
       begin
        Index := j;
        Break;
       end;
      if Index = -1 then
       Result := Result + aStr[i]
      else
       Result := Result + KoiR[Index];
   end;
end;
0
0 / 0 / 1
Регистрация: 20.10.2016
Сообщений: 86
07.04.2017, 05:58  [ТС] 4
Цитата Сообщение от krapotkin Посмотреть сообщение
наличие интернета проверяется обычно попыткой сделать http.get или http.head на к-нить известный хост типа google.com

правильность логина и пароля почты - аналогично. если неправильные - получите ошибку. а как еще?

про кодировку видел посты, но не стал искать за вас. насколько я помню, там еще заголовок и тело письма идут в разных кодировках...
не подскажите?
0
5615 / 4387 / 1398
Регистрация: 14.04.2014
Сообщений: 19,631
Записей в блоге: 20
07.04.2017, 06:53 5
Подскажу, конечно. правильно пишется через Е - "не подскажЕте?"

А первая(!) же ссылка в гугле, где вас забанили, по словам Delphi отправить email кодировка дает http://devdelphi.ru/?p=1419
и там прямо в комментах откровение

Добавлено через 21 минуту
https://www.cyberforum.ru/blog... og296.html
0
0 / 0 / 1
Регистрация: 20.10.2016
Сообщений: 86
07.04.2017, 08:31  [ТС] 6
спасибо больше буду смотреть сейчас а не подскажите если отправлять на почту вложенный файл то можно ли как то отследить какой размер файла осталось передать и скорость передачи и время ожидания
0
5615 / 4387 / 1398
Регистрация: 14.04.2014
Сообщений: 19,631
Записей в блоге: 20
07.04.2017, 13:45 7
медитацию не практикуете? помогает иногда просто помедитировать над событиями, которые предоставляет компонент
ну или накрайняк, документация...
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm2.IdSMTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Int64);
begin
 
end;
 
procedure TForm2.IdSMTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
begin
 
end;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2017, 13:45
Помогаю со студенческими работами здесь

IIS6+SMTP, CDOSYS -> вся почта в папке Queue
Система: Win2003+IIS6.0. В скрипте отправляю почту через CDOSYS. Скрипт ошибок не выдает, однако,...

Не отправляется почта gmail: серверу SMTP требовалось защищенное соединение или подлинность клиента не была
Пробовал отправить почту двумя способами, вылетает ошибка. В чем проблема? SmtpClient Smtp = new...

Проблемы с кодировкой
Здравствуйте, дорогие друзья. Надеюсь очень на вашу помощь. Дело вот в чем. Есть игра, сделаная...

Проблемы с кодировкой
Здравствуйте. Работаю на Dev-C++. Кирилица выводится каракулями. С английским все в порядке. Почти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru