Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кодировка. 
:(
    Опции темы
PsiMagistr
Дата 30.7.2010, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Ребята, пытаюсь прикрутить почтовые функции. Все работает и письма отсылает. Но с кодировкою  - жесть-беда: Инглиш - норма, русский - знаки вопроса и все тебе тут. Весь форум излазил. Все перепробовал.

Дельфи 2009.

Три сетевых обьекта на форме Msg (TIdMesage), Smtp(TIdSmtp), IdAntiFreeze1 (TIdAntiFreeze) (Кстати чем он занимается этот антифриз?)

Код такой:

Код

procedure TS.Button1Click(Sender: TObject);
begin
SMtp.Host := 'smtp.inbox.ru';
Smtp.Port := 25;
smtp.Username := 'Login';
smtp.Password := 'Parol';
msg.From.Text := '[email protected]';
msg.Recipients.EMailAddresses := '[email protected]';
msg.Subject := 'Тестовое';
msg.CharSet := 'windows-1251';
msg.Body.Text := m.Text;
Smtp.Connect;
if Smtp.Connected  then
Begin
Smtp.Send(msg);
Smtp.Disconnect;
End;
end;



--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
Snowy
Дата 30.7.2010, 12:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Антифриз занимается тем, что не даёт приложению замирать во время работы Indy.
А с кодировкой - всё нормально. Просто ты её не устанавливаешь, зато говоришь почтовой программе, что у тебя вин-1251, хотя это не так.
PM MAIL   Вверх
PsiMagistr
Дата 30.7.2010, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



А как ее установить то?.  Я то думал:

msg.CharSet := 'windows-1251'; //Увы. Оказалось не то.


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
Snowy
Дата 30.7.2010, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Этой строкой ты только указываешь, какая у тебя Body.Text кодировка.
А там у тебя UTF-16.
пропиши у IdSMTP
.IOHandler.DefStringEncoding := TEncoding.нужная_кодировка;
PM MAIL   Вверх
PsiMagistr
Дата 30.7.2010, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



УВы. Ошибка несовпадения типов.

[DCC Error] Unit1.pas(38): E2010 Incompatible types: 'TIdEncoding' and 'TEncoding'


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
Snowy
Дата 30.7.2010, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Цитата(PsiMagistr @  30.7.2010,  13:04 Найти цитируемый пост)
Incompatible types: 'TIdEncoding' and 'TEncoding'
Ну и что из этого следует?
Что я пропустил буковки Id в слове TIdEncoding smile 
PM MAIL   Вверх
PsiMagistr
Дата 30.7.2010, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Нет, уважаемый Snowy в данном случае из этого следует кое что другое. Поскольку о существовании TIdEncoding' мой Дельфи вообще не подозревает... При попытке  записать:

smtp.IOHandler.DefStringEncoding  := TIdEncoding.та-та-та-та;

Он реагирует на TIdEncoding как на нечто инопланетное. (подчеркивает красным)





--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
CodeMonkey
Дата 30.7.2010, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Цитата(PsiMagistr @  30.7.2010,  14:33 Найти цитируемый пост)
Поскольку о существовании TIdEncoding' мой Дельфи вообще не подозревает...

А кто ж тогда пишет "Incompatible types: 'TIdEncoding'"? smile

...из чего следует, что надо запустить поиск текста "TIdEncoding =" в *.pas файлах папки Indy и добавить найденный модуль в uses.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
PsiMagistr
Дата 30.7.2010, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Никак не найду модуль, ребята. Пожалуйста, если не трудно, подскажите конкретно, что подключить надо? 3й день вожусь, а тут еще жара. Заранее благодарен.


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
CodeMonkey
Дата 30.7.2010, 14:46 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Не могу сказать за Delphi 2009, но в Delphi 2010 свойство DefStringEncoding имеет тип TIdTextEncoding, который объявлен в IdGlobal.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
PsiMagistr
Дата 30.7.2010, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Добавил модуль, записал, smtp.IOHandler.DefStringEncoding  := TIdEncoding.enUTF8;

TIdEncoding.enUTF8 был нормально обнаружен.

Запустил проект. При отправке ошибка и все тут.

Это сообщение отредактировал(а) PsiMagistr - 30.7.2010, 15:45


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
CodeMonkey
Дата 30.7.2010, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Вроде Showy говорил, что надо UTF-16, а не UTF-8?

Я не очень разбираюсь в Indy, но когда последний раз я туда нырял, оказалось, что там что-то сильно понаворотили в связи с переходом на Unicode. Возможно, нужно искать решение, а может это баг (и надо обновить Indy), а ещё можно использовать другую библиотеку - к примеру, Synapse.

Добавлено через 1 минуту и 58 секунд
Для Synapse ссылочки:
http://www.webdelphi.ru/2010/02/synapse-ot...ispolzuya-smtp/
http://www.webdelphi.ru/2010/03/synapse-v-...s-vlozheniyami/
http://www.webdelphi.ru/2010/07/otpravka-p...vaniem-synapse/
http://www.webdelphi.ru/2010/07/gmail-syna...-pisem-reshena/


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
PsiMagistr
Дата 30.7.2010, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Спасибо Вам большое CodeMonkey. Честно говоря, не знаю что и думать, хотя проблемы с Инди предвидел, там багов целый воз.



--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
ZBugz
Дата 7.5.2015, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: нет
Всего: 6



Всем привет... 
А вот в delphi XE8 ну никак не могу прикрутить  TIdEncoding.enUTF8
Не могу анйти где он обьявлен.. Помогите найти uses...

Это сообщение отредактировал(а) ZBugz - 9.5.2015, 07:43
PM MAIL   Вверх
ZBugz
Дата 9.5.2015, 07:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: нет
Всего: 6



Что ? Никто не знает ?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1206 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.