|
Вопрос # 1 400/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
У меня такой вот вопрос... При отсылке почты через компонент IdSMTP программа виснет. Как можно избежать этого, например приделать к отсылке ProgressBar...
 |
Вопрос задал: Василий Иванович (статус: Посетитель)
Вопрос отправлен: 10 марта 2008, 10:23
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Василий Иванович!
Ответ прост - использовать потоки. В случае Indy - это идиологически единственный правильный вариант решения. Это не слишком сложно, чем можно подумать.
В разделе статьи вы найдёте статью Скачиваем файлы из интернета, где приводиться пример с IdHttp. Материала там достаточно, что бы решить вашу задачу.
Есть ещё один способ, но более сложный. Сделать отдельное приложение, которое будет скачивать, а вы с ним работать. Но это для особых случаем.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 10 марта 2008, 12:48
Оценка за ответ: 5
|
Ответ #2. Отвечает эксперт: Feniks
Здравствуйте, Василий Иванович!
Использование SMTP Relay Server - отсылка письма напрямую минуя любые промежуточные сервера (пример взят из библиотеки Indy). Для отсылки письма с использованием компонентов Indy. Пример для Delphi 7 (скорее всего будет работать и в Delphi 6), для Kylix 3 нужны небольшие исправления для перевода в CLX приложение (сама функциональность та же).
Пример и форма в Атаче. К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)
 |
Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 11 марта 2008, 11:22
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 11 марта 2008, 23:24; участников в обсуждении: 2.
|
Василий Иванович (статус: Посетитель), 10 марта 2008, 12:41 [#1]:
И еще: при таком вот коде:
uses
IdAttachment;
...
var
nam: string;
Attach: TIdAttachment;
...
Attach:=TIdAttachment.Create(IdMessage1.MessageParts, nam);
Выдает ошибку Too many actual parameters
Если в uses не прописать IdAttachment, то:
[Error] Unit1.pas(88): E2003 Undeclared identifier: 'TIdAttachment'
|
|
Вадим К (статус: Академик), 11 марта 2008, 15:45 [#2]:
в делфи 6 и 7 используются различные версии инди. а там была значительно переделана архитектура. поэтому нужно смотреть, какие параметры надо. Остановите курсор (текстовый) сразу за открывающейся скобкой и нажмите Ctrl+пробел. делфи подскажет параметры.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Василий Иванович (статус: Посетитель), 11 марта 2008, 18:59 [#3]:
У меня делфи 2005. Версия Инди то ли 9, то ли 10
При открытии скобки (Attach:=TIdAttachment.Create() сразу всплывает хинт Collection: TCollection;
|
|
Вадим К (статус: Академик), 11 марта 2008, 23:24 [#4]:
я написал так Attach:=TIdAttachment.Create(IdMessage1.MessageParts); и всё компилируется. к сожалению, я не знаю, что такое nam, подозреваю, что это имя чего то.смотрите по логике программы.
Галочка "подтверждения прочтения" - вселенское зло.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|