![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранить вложение из idMessage [D6, Win2k, WinXP]
Progh © (2005-01-24 16:57:00)Народ, оочень нужно, помогите сохранить приложеный файл из idMessage(idPOP3) под определенным именем, содержимое которого я скачал с ящика
stone (2005-01-25 09:30:00) [1]Выдержка из справки:
MessageParts can contain two TIdMessagePart descendants: TIdText and TIdAttachment.
Во-первых
> Attach := TIdAttachment.Create(idMessage.MessageParts);
Это вообще не понятно
Во вторых, в цикле for j := 0 to idMessage.MessageParts.Count-1 do следует перебирать MessageParts.Items[j] и проверять их на соответствия TIdText или TIdAttachment, а ззатем уже принимать решение по обработки соответствующей TIdMessagePart
Progh (2005-01-24 20:27:00) [2]var
mc, i, j: integer;
idMessage: TidMessage;
_Attach: TIdAttachment;
fname: String;
begin
idPop3.Username := User;
idPop3.Password := Password;
idPop3.Host := Host;
idPop3.Port := 110;
if idPOP3.Connected = true then
idPOP3.Disconnect;
idPOP3.Connect;
mc := idPOP3.CheckMessages;
Result := mc;
idMessage := TidMessage.Create(nil);
for i := 1 to mc do
begin
IdMessage.Clear;
idPOP3.Retrieve(i, IdMessage);
_Attach := TIdAttachment.Create(idMessage.MessageParts);
for j := 0 to idMessage.MessageParts.Count-1 do
begin
// Вот тут у меня почемуто в fName возвращается пустота, хотя приложение в письме 100% есть
fName := SaveToDir + (_Attach as TIdAttachment).FileName;
CopyFile(pchar(_Attach.StoredPathName), pchar(fName), true);
end;
Почему fName = '' ?
stone (2005-01-24 17:09:00) [3]FileName := Path + (idMessage.MessageParts.Items[j] as TIdAttachment).FileName;
CopyFile(pchar(idMessage.MessageParts.Items[j].StoredPathName), pchar(FileName), true);