toc
Display feature availability | ||
---|---|---|
|
Table of Contents |
---|
Introduction
This job allows e-mails and their attachments arriving at an in-box to be automatically processed and to be used a basis for generating orders for further Job Chains. In addition, this job can also be used as a pre-processor for other automated mail and attachment processing.
Article Scope
The reference documentation for the SOSMailProcessInBox Job with detailed parameter descriptions is available online and in the JobScheduler installation ./jobs
sub-folder. The current article
E-mail Processing Job
This Job is to carry out the following:
1. Process attachments
An e-mail 'incoming basket' is to be polled. Only unread e-mails will be processed.
carries out the following:
- Access an e-mail inbox:
- Polling is not recursive - sub-folders of the inbox are not polled.
- Access parameters
Parameter Comment Options Default Example mail_host imap@testLand.com mail_port 110 mail_user demo.user@testLand.com mail_password stored as plain text mail_ssl mail_server_type IMAP, POP3 POP3 mail_server_timeout milliseconds 0 (no timeout)
- Filter e-mails for matches:
- Only unread e-mails are considered.
- All e-mails matched are marked as being read.
- Filter parameters:
Parameter Comment Options Default Example mail_message_folder csv INBOX mail_subject_filter matches string string - TestMail_01 mail_subject_pattern matches regex - TestMail_\d\d mail_body_pattern matches regex min_age 0, secs, hrs:mins, hrs:mins:secs mail_use_seen true, false true
- Carry out one or more actions one after the other:
- Possible actions are:
Parameter Comment Options Default Example mail_action csv dump, order, command, delete, copy_attachments_to_file - dump: save the content of the e-mail as a file located in mail_directory_name.
relevant if copy_mail_to_file = false (default is true). - order: an order will be generated for each mail
relevant if create_order = false. - command: the body of the e-mail will be used as a command.
- delete: the email will be deleted.
- copy_attachments_to_file:
relevant if copy_attachments_to_file = false (default value).
- Possible actions are:
- Save the e-mails found to files when the mail_action parameter is set to dump:
- E-mails found are written as files to a directory.
Parameters:
Parameter Comment Options Default Example copy_mail_to_file alternative to mail_action = dump true, false true mail_directory_name D:\_AA\_demo\mails max_mails_to_process 200000
- E-mails found are written as files to a directory.
- Process any e-mail attachments:
- When an e-mail with an attachment is found:
- The attachment is moved to a directory
- When an e-mail with an attachment is found:
- parameters
- copyAttachmentsToFile=true
- directory name
- :
- Parameters:
Parameter Comment Options Default Example copy_attachments_to_file alternative to mail_action = copy_attachments_to_file true, false false attachment_file_name_pattern \${subject}, \${filename}, \${messageId} \${subject}_\${filename} attachment_directory_name requires: mail_action or copy_attachments_to_file D:\_AA\_demo\mails
- Parameters:
- This directory can also be monitored with, for example, a File Order Source
- :
...
2. Write e-mails to files
An e-mail 'incoming basket' is to be polled. Only unread mails will be processed.
When an e-mail is found:
...
- parameters
- copyMail2File=true
- directory name
- Generate an Order for another Job Chain:
- Parameters:
Parameter Comment Options Default Example create_order alternative to mail_action = order true, false false mail_jobchain mail_order_id mail_order_title mail_order_state
- The following parameters will be generated from the parameters of the original e-mail:
- "mail_from": sender of mail
- "mail_from_name"
- "mail_message_id": message id of mail
- "mail_subject": the subject
- "mail_body": the body
- "mail_send_at": date of sending the mail
- Parameters:
...
- createOrder=true
- the job chain name
...
- the file name
- the subject of the mail
- the sender
- the mail received date
...
- Post-process the mail (optional):
Parameters:
Parameter Comment Options Default Example after_process_email markAsRead, delete, move,copy markAsRead after_process_email_directory_name email:INBOX/subfolder_in
...
- parameter: the folder name
...
Example Job
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<job title="Process email incoming box" order="no" name="ProcessMail"> <description > <include file="jobs/SOSMailProcessInbox.xml"/> </description> <params > <param name="mail_host" value="mail.sos-berlin.com"/> <param name="mail_port" value="993"/> <param name="mail_user" value="myUser"/> <param name="mail_password" value="********Ü"/> <param name="mail_ssl" value="true"/> <param name="mail_server_timeout" value="30000"/> <param name="mail_subject_filter" value="string2search"/> <param name="copy_mail_to_file" value="true"/> <param name="mail_dump_dir" value="c:/temp/mails"/> <param name="process_attachments" value="true"/> <param name="attachement_directory_name" value="c:/temp/attachment"/> <param name="max_mails_to_process" value="20000"/> <param name="after_process_email" value="copy"/> <param name="after_process_email_directory_name" value="email:INBOX/test"/> <param name="mail_server_type" value="IMAP"/> <param name="attachment_file_name_pattern" value="\${subject}_\${filename}"/> </params> <script language="java" java_class="com.sos.jitl.mailprocessor.SOSMailProcessInboxJSAdapterClass"/> <run_time /> </job> |
Provision of E-mails as JavaScript Objects
JavaScript can be used to retrieve an e-mail as a JavaScript object once the mail has been saved as a file by the SOSMailProcessInBox job. The individual parts of the mail can then further automatically processed as required.
SOSEmailObject email = getEmailObject(var filename) -
- String email.getSubject()
- String email.getAttachmentFilename
- String email.getReceipient
- String email.getBody()
- String email.getReturnAddress
- String email.get
- ....
Example Job Retrieving E-Mail Message
Here is an example job which retrieves an e-mail message file as a JavaScript object and logs individual properties of the message.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<job enabled="yes" stop_on_error="no"> <script language="java:javascript"> <![CDATA[ function spooler_process(){ var message = com.sos.jitl.mailprocessor.SOSFileToMailProcessor.getMessage("C:/temp/mails/10f7-5b35e680-71-456fb280@195509842"); spooler_log.info("Subject: " + message.getSubject()); spooler_log.info(message.getPlainTextBody()); spooler_log.info("To:" + message.getFirstToRecipient()); spooler_log.info("To:" +message.getToRecipient(0)); spooler_log.info("To:" +message.getRecipient("TO", 0)); spooler_log.info("CC:" + message.getFirstCCRecipient()); spooler_log.info("BCC:" + message.getFirstBCCRecipient()); spooler_log.info("From Address:" + message.getFromAddress()); spooler_log.info("From Name:" + message.getFromName()); spooler_log.info("Content-Type:" + message.getHeaderValue("content-type")); spooler_log.info("Message Id: " + message.getMessageId()); spooler_log.info("Date:" + message.getSentDate().toLocaleString()); spooler_log.info("Attachment Count:" + message.getSosMailAttachmentsCount()); spooler_log.info(message.getSosMailAttachments().get(0).getContentType()); return false; } ]]> </script> <run_time /> </job> |
...