Click or drag to resize
MailAttachmentDownloaderPluginAPI Namespace
Mail Attachment Downloader Plugin API allows extending the processing rules and actions performed for emails or attachments. A common scenario for its use would be to integrate email with other LOB (line of business) applications or cloud applications.

For each email, Mail Attachment Downloader splits the processing of the email into various phases. The phases are defined below.

  1. Filter - This determines which emails or attachments are downloaded
  2. Extraction - This extracts data from the email contents for use in actions
  3. Process file - Every attachment is saved as per rules defined and processing is performed on the file
  4. Process email - For every email, processing is performed
  5. Error - When an error occurs, logs are written and statistics are updated.

This plugin API provides three easy-to-implement interfaces (IEmailFiltering, IEmailExtraction and IEmailProcessing) that enables you as an application developer to plugin to each of the phases of processing above while hiding a lot of the complexity of email processing and actions. The following are the functions that are provided.

A sample project with an implementation is included. Check the zip file for more information.
Classes
  ClassDescription
Public classEmailProcessingException
Provides details about any exceptions that occur during email processing.
Interfaces
  InterfaceDescription
Public interfaceIEmailExtraction
Extraction plugin interface that offers functions that you can use to pass extractions back for further processing by the program.

Functions specified in this interface may be invoked from multiple threads simultaneously for different emails for parallel processing. You must make sure that the implementation is thread-safe. For a given email, this will typically only be invoked from a single thread except in the case of an error where a retry may invoke it from another thread.

Public interfaceIEmailFiltering
Filtering plugin interface that offers functions that you can use to influence which emails or attachments are downloaded.

Functions specified in this interface may be invoked from multiple threads simultaneously for different emails for parallel processing. You must make sure that the implementation is thread-safe. For a given email, this will typically only be invoked from a single thread except in the case of an error where a retry may invoke it from another thread.

Public interfaceIEmailProcessing
Processing plugin interface that offers functions that you can use to alter the way the program processes emails or attachments.

Functions specified in this interface may be invoked from multiple threads simultaneously for different emails for parallel processing. You must make sure that the implementation is thread-safe. For a given email, this will typically only be invoked from a single thread except in the case of an error where a retry may invoke it from another thread.