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/