![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
по поводу TIdAttachment [D7, Win2k]
alt7 © (2003-12-08 17:44:00)
Бьюся вот, как прикрепить к сообщению 2 и более файла и отправить их через TIdSMTP ?
Мой кусок кода:
IdSMTP.Host := Host;
IdSMTP.Password := PWD;
IdSMTP.Username := E_Mail_From;
IdSMTP.Connect();
IdMsg.Body.SetText("*.dbf");
IdMsg.Subject := "*.dbf";
IdMsg.From.Address := Send_REC.E_Mail_From;
IdMsg.Recipients.EMailAddresses := Send_REC.E_Mail_To[0];
for i := 1 to Length(Send_REC.E_Mail_To)-1 do
IdMsg.Recipients.EMailAddresses := IdMsg.Recipients.EMailAddresses + "; " + Send_REC.E_Mail_To[i];
TIdAttachment.Create(IdMsg.MessageParts, Send_REC.DIR_OUT+"\ca.zip");
IdSMTP.Send(IdMsg);
IdSMTP.Disconnect;
Вообщем из Record (Send_REC) и не только, заполняем поля в IdSMTP, IdMsg.. несколько получателей этого письма.
Там где Create - пример, для одного файла и он работает правильно.. а как вот подцепить 2 и более файла и отправить?
С этим MessageParts черт ногу сломит, демок инди у меня нет, на сайте их не нашел...
alt7 (2003-12-10 11:52:00) [1]
Вместо "Как проверить, что SendMsg отработал правильно, и файлы отосланы?"
читать "Как проверить, что Send отработал правильно, и файлы отосланы?"
alt7 (2003-12-10 11:50:00) [2]
Кхм, как просто. А как тогда сделать удаление файлов из каталога, которые были отосланы?
Пробовал:
IdAt := TIdAttachment.Create(<Сообщение>,<Имя файла>);
IdAt.FileIsTempFile := true;
Но не удаляет...
Как проверить, что SendMsg отработал правильно, и файлы отосланы?
TIdSMTP.Send - процедура, ничего не возвращает...
1) Всунул в обработчик OnWorkEnd проверку на wmWrite, если true - то типа как отосланы и через DeleteFile удаляю файлы... Наверняка OnWorkEnd сработает, даже если письмо не отошлется, так ведь?
2) Есть еще идея в OnWork впихнуть проверку... Там есть счетчик AWorkCount количество байтов отосланых. Если > 0, то в глобальную переменную (gl_Write к примеру) записать true и в OnWorkEnd проверять, if AWorkMode=wmWrite and gl_Write then удалить файлы..
Есть идеи? Если нет, то каков вариант правилен: 1 или 2 ?
Если оба, то конечно выберу 1) так как OnWork срабатывает каждый раз, когда остылается порция данных....
Sherbacov (2003-12-10 01:00:00) [3]
uses IdMessage
Добавляем:
TIdAttachment.Create(<Сообщение>,<Имя файла>);