Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{
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.
}