| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Получение почты через SSL протокол |
| Автор: killerbean 28.11.2006, 15:02 | ||
Необходимо получить письмо с ящика gmail. На форуме порылся и получил следующий код:
вроде все понял правельно, но коннект все равно не происходит. В чем моя ошибка? Может я неправельные данные передаю, или еще где-то ошибочка? Помогите |
| Автор: Snowy 28.11.2006, 15:25 |
| А что говорит? |
| Автор: killerbean 28.11.2006, 15:34 | ||
на pop.Connect возвращает ошибку
|
| Автор: killerbean 29.11.2006, 13:58 | ||
| Попробовал соединиться с mail.ru. Код тотже, только убрал SSL поддержку. в функцию передаю следующие параметры:
в результате получаю "Host not found", может я чего-то не то передаю? |
| Автор: Snowy 29.11.2006, 14:19 |
| Открой телнет. Набери: o pop.mail.ru 110 Подключается? |
| Автор: killerbean 29.11.2006, 14:32 |
| нет, а что делать? |
| Автор: Snowy 29.11.2006, 14:44 |
| Значит ты не можешь напрямую подключиться со своего компьютера. Вероятно ты за прокси и порты закрыты |
| Автор: killerbean 29.11.2006, 16:01 |
| Спасибо Snowy. Проблема была с 110-м портом, но всеравно в данном коде не принимаеться аттач. Точнее никогда не выполняеться условие "m.MessageParts.items[i].ClassType=TIdAttachment", хотя письмо точно с аттачем (я проверял). В чем может быть проблема? |
| Автор: Matematik 29.11.2006, 16:09 | ||
ИМХО
|
| Автор: Snowy 29.11.2006, 16:15 |
| Почитай этот топ: http://forum.vingrad.ru/index.php?showtopic=84672&view=all Возможно у тебя та же проблема. Там последним постом я дал код с обходом ошибки Indy. |
| Автор: killerbean 30.11.2006, 11:11 | ||
TO: Matematik если заменить на is, то даже не компилируеться с ошибкой
Snowy. Не получаеться. Письмо приходит, а условие "if (items[i].ClassType = TIdAttachment) then" не выполняеться. (Код взял с последнего поста) |
| Автор: Matematik 30.11.2006, 11:17 | ||||||
В indy 9 is работает 100%
|
| Автор: Snowy 30.11.2006, 11:25 |
| killerbean, отправь себе другое письмо для проверки. Код полностью рабочий. Проверен. Вероятно что-то не так в самом письме. Что - не знаю. Его у меня нет |
| Автор: killerbean 30.11.2006, 11:52 | ||||
Тогда я вышлю Вам тестовое письмо. Создаю его так:
вызываю так:
|
| Автор: Snowy 30.11.2006, 12:39 | ||
| Получил письмо. Нарисовал код для проверки:
ProcessMessage брал из топа по той самой ссылке. Единственное, что я не сам забирал, а мой почтовик. Я только в файл сохранил. Но не думаю, что это имеет какое-либо значение. Цель была - разбор мессаги. |
| Автор: killerbean 30.11.2006, 13:11 | ||
Привел функцию ReseiveMail к виду:
в папке "Messages" сохраняеться текстовый файл с телом письма, а аттача как небыло так и нет. Условие "m.MessageParts.items[i].ClassType=TIdAttachment" не выполняеться Я понимаю что дело в кривых руках, но я даже не знаю в каком направлении двигаться |
| Автор: Snowy 30.11.2006, 13:26 |
| После pop.Retrieve(mc,m); Поставь m.SaveToFile('test.msg'); И этот файл вышли мне. Добавлено @ 13:38 Блин. [Посыпаю пеплом голову]. Я только при переходе на следующую страницу заметил, что Indy у тебя 10! А в 10-ке вместо TIdAttachment нужно по коду везде прописать TIdAttachmentFile. И где были мои глаза... Потому и не проходило проверку - TIdAttachmentFile наследний TIdAttachment и это уже другой класс. Вобщем замени в коде везде на TIdAttachmentFile и всё заработает. |
| Автор: killerbean 30.11.2006, 13:50 |
| Ну наконец-то всё нормально. Огромное спасибо Snowy за терпение |