Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Сохранить вложения OutLook

01.01.2007

autor: patrick cleys

homepage: http://www.dcmedical.org

{ 
won
t some backups of your outlook attachments are filtered
some incoming log files
? here's the function.
}
 
uses
comobj;
 
{...}
 
function manageattachments(sendersname, attachmentpath: string;
maildelete: boolean): boolean;
var
oapp: variant;
ons: variant;
ofolder: variant;
omsg: variant;
atc: variant;
attfilename: variant;
filename: string;
checksender: string;
counter: integer;
mailcounter: integer;
begin
try
oapp := createoleobject('
outlook.application');
try
ons := oapp.getnamespace('
mapi');
ofolder := ons.getdefaultfolder(6); // foldertypeenum (olfolderinbox)
mailcounter := 1;
// if there is any email in the inbox
if ofolder.items.count > 0 then
begin
repeat
// get the first email
omsg := ofolder.items(mailcounter);
// check the name or email
// use checksender := omsg.subject to search on subject;
checksender := omsg.sendername;
if checksender = sendersname then
// remove this line to backup all your attachments.
begin
// check how many attachments
atc := omsg.attachments.count;
if atc > 0 then
begin
// get all the attachments and save them
for counter := 1 to atc do
begin
attfilename := omsg.attachments.item(counter).filename;
//filename := includetrailingbackslash(attachmentpath)+attfilename; {use this line for d5)}
filename := attachmentpath + '' + attfilename;
omsg.attachments.item(counter).saveasfile(filename);
end;
end;
if maildelete then
begin
omsg.delete;
// there'
s 1 email less, so mailcounter - 1
dec
(mailcounter);
end;
end;
// get the next email
inc
(mailcounter);
// do until there is no more email to check
until mailcounter > ofolder.items.count;
end;
finally
oapp
.quit;
end;
except
result
:= false;
exit;
end;
result
:= true;
end;
 
 
procedure tform1
.button1click(sender: tobject);
begin
// manageattachments(email or name, backup directory, maildelete yes or no)
manageattachments
('info@cleys.com', 'f:test', false);
end;
 
 
{
warning
!
all your selected email will be deleted
if maildelete = true
 
achtung
!
alle e
-mails werden geloscht, wenn maildelete = true ist.
}
 

 
https://www.swissdelphicenter.ch/