Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Child pages (Children Display)
depth1
allChildrentrue
style
sortAndReverse
excerptTypesimple
first0

As opposed to the server routines, we use here full structures because we have access to the whole email.

IncomingMail

Code Block
string subject;
string body;
string htmlBody;
string [] to;
string [] cc;
string [] from;
string [] replyTo;
IncomingEmailHeader [] headers;
IncomingEmailAttachment [] attachments;
string contentType;
date sentAt;
date receivedAt;
int size;
IncomingMail [] embeddedMessages;

IncomingEmailHeader

Code Block
string name;
string value;

IncomingEmailAttachment

Code Block
string fileName;
string contentType;
int size;
byte [] content;

Example usage

Standard processing:

Code Block
IncomingEmail mail = getIncomingEmail();

string issueKey = mail.subject;
if(issueExists(issueKey)) {
    // add comment

    string commentText = mail.body;
    string userCommenting = getUserByEmail(mail.from).key;
    
    addComment(issueKey, userCommenting, commentText);
    attachAllFilesFromEmail(issueKey);
    
} else {
    // create issue
    
    string summary = mail.subject;
    string description = mail.body;
    
    string [] fields = {};
    fields += {"reporter", getUserByEmail(mail.from).key};
    
    createIssue("SCRUM", "", "Task", summary , "Minor", description, {}, "", "", fields);
}