Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ Delphi FoxPro Java Perl Python Ruby SQL Server VBScript
|
Download and Save Email Attachments (POP3)Downloads emails from a POP3 mailbox and saves all attachments.
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATMAILLib2_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var mailman: TChilkatMailMan2; success: Integer; bundle: CHILKATMAILLib2_TLB.IChilkatEmailBundle2; dirPath: String; i: Integer; email: CHILKATMAILLib2_TLB.IChilkatEmail2; n: Integer; j: Integer; begin // The mailman object is used for receiving (POP3) // and sending (SMTP) email. mailman := TChilkatMailMan2.Create(Self); // Any string argument automatically begins the 30-day trial. success := mailman.UnlockComponent('30-day trial'); if (success <> 1) then begin ShowMessage('Component unlock failed'); end; // Set the POP3 server's hostname mailman.MailHost := 'mail.chilkatsoft.com'; // Set the POP3 login/password. mailman.PopUsername := '***'; mailman.PopPassword := '***'; // Copy the all email from the user's POP3 mailbox // into a bundle object. The email remains on the server. bundle := mailman.CopyMail(); if (bundle = nil ) then begin ShowMessage(mailman.LastErrorText); end; dirPath := 'c:/myAttachments'; for i := 0 to bundle.MessageCount - 1 do begin email := bundle.GetEmail(i); // You may save all the attachments to the specified directory // by calling SaveAllAttachments. // The SaveAllAttachments method will automatically create the directory // if it does not already exist. success := email.SaveAllAttachments(dirPath); if (success <> 1) then begin ShowMessage(email.LastErrorText); end; // The OverwriteExisting property controls whether already-existing files // are automatically overwritten. By default, it is set to 1 so that existing // files will be overwritten. // Setting OverwriteExisting = 0 will cause the attachment-saving methods to generate // unique filenames if a file with the same name already exists. The actual filename(s) // saved will be present by calling GetAttachmentFilename for each attachment *after* // saving. // For example... email.OverwriteExisting := 0; success := email.SaveAllAttachments(dirPath); if (success <> 1) then begin ShowMessage(email.LastErrorText); end; n := email.NumAttachments; for j := 0 to n - 1 do begin // If the attachment filename was changed to prevent overwriting, // GetAttachmentFilename will return the new filename. Memo1.Lines.Add(email.GetAttachmentFilename(j)); end; // You may also save individual attachments: for j := 0 to n - 1 do begin Memo1.Lines.Add('Original Filename: ' + email.GetAttachmentFilename(j)); success := email.SaveAttachedFile(j,dirPath); if (success <> 1) then begin ShowMessage(email.LastErrorText); end; // If OverwriteExisting = 1, the saved filename will always equal the original filename, // unless there are characters present in the filename that are not allowed by Windows, // such as * ? < > | etc. In those cases the illegal characters are either removed or replaced // with underscore characters to allow the file to be saved. Memo1.Lines.Add('Saved Filename: ' + email.GetAttachmentFilename(j)); end; end; end; |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2007 Chilkat Software, Inc. All Rights Reserved.