Kernel::System::Ticket::Article::Backend::Email - backend class for email based articles
This class provides functions to manipulate email based articles in the database.
Inherits from Kernel::System::Ticket::Article::Backend::MIMEBase, please have a look there for its base API, and below for the additional functions this backend provides.
Return article data by supplied message ID.
my %Article = $ArticleBackendObject->ArticleGetByMessageID( MessageID => '<13231231.1231231.32131231@example.com>', # (required) DynamicFields => 1, # (optional) To include the dynamic field values for this article on the return structure. RealNames => 1, # (optional) To include the From/To/Cc/Bcc fields with real names. );
Send article via email and create article with attachments.
my $ArticleID = $ArticleBackendObject->ArticleSend( TicketID => 123, # (required) SenderTypeID => 1, # (required) # or SenderType => 'agent', # (required) agent|system|customer IsVisibleForCustomer => 1, # (required) Is article visible for customer? UserID => 123, # (required) From => 'Some Agent <email@example.com>', # required To => 'Some Customer A <customer-a@example.com>', # required if both Cc and Bcc are not present Cc => 'Some Customer B <customer-b@example.com>', # required if both To and Bcc are not present Bcc => 'Some Customer C <customer-c@example.com>', # required if both To and Cc are not present ReplyTo => 'Some Customer B <customer-b@example.com>', # not required, is possible to use 'Reply-To' instead Subject => 'some short description', # required Body => 'the message text', # required InReplyTo => '<asdasdasd.12@example.com>', # not required but useful References => '<asdasdasd.1@example.com> <asdasdasd.12@example.com>', # not required but useful Charset => 'iso-8859-15' MimeType => 'text/plain', Loop => 0, # 1|0 used for bulk emails Attachment => [ { Content => $Content, ContentType => $ContentType, Filename => 'lala.txt', }, { Content => $Content, ContentType => $ContentType, Filename => 'lala1.txt', }, ], EmailSecurity => { Backend => 'PGP', # PGP or SMIME Method => 'Detached', # Optional Detached or Inline (defaults to Detached) SignKey => '81877F5E', # Optional EncryptKeys => [ '81877F5E', '3b630c80' ], # Optional } HistoryType => 'OwnerUpdate', # Move|AddNote|PriorityUpdate|WebRequestCustomer|... HistoryComment => 'Some free text!', NoAgentNotify => 0, # if you don't want to send agent notifications ); my $ArticleID = $ArticleBackendObject->ArticleSend( (Backwards compatibility) TicketID => 123, # (required) SenderTypeID => 1, # (required) # or SenderType => 'agent', # (required) agent|system|customer IsVisibleForCustomer => 1, # (required) Is article visible for customer? UserID => 123, # (required) From => 'Some Agent <email@example.com>', # required To => 'Some Customer A <customer-a@example.com>', # required if both Cc and Bcc are not present Cc => 'Some Customer B <customer-b@example.com>', # required if both To and Bcc are not present Bcc => 'Some Customer C <customer-c@example.com>', # required if both To and Cc are not present ReplyTo => 'Some Customer B <customer-b@example.com>', # not required, is possible to use 'Reply-To' instead Subject => 'some short description', # required Body => 'the message text', # required InReplyTo => '<asdasdasd.12@example.com>', # not required but useful References => '<asdasdasd.1@example.com> <asdasdasd.12@example.com>', # not required but useful Charset => 'iso-8859-15' MimeType => 'text/plain', Loop => 0, # 1|0 used for bulk emails Attachment => [ { Content => $Content, ContentType => $ContentType, Filename => 'lala.txt', }, { Content => $Content, ContentType => $ContentType, Filename => 'lala1.txt', }, ], Sign => { Type => 'PGP', SubType => 'Inline|Detached', Key => '81877F5E', Type => 'SMIME', Key => '3b630c80', }, Crypt => { Type => 'PGP', SubType => 'Inline|Detached', Key => '81877F5E', Type => 'SMIME', Key => '3b630c80', }, HistoryType => 'OwnerUpdate', # Move|AddNote|PriorityUpdate|WebRequestCustomer|... HistoryComment => 'Some free text!', NoAgentNotify => 0, # if you don't want to send agent notifications );
Events: ArticleSend
Bounce an article.
my $Success = $ArticleBackendObject->ArticleBounce( From => 'some@example.com', To => 'webmaster@example.com', TicketID => 123, ArticleID => 123, UserID => 123, );
Events: ArticleBounce
Send an auto response to a customer via email.
my $ArticleID = $ArticleBackendObject->SendAutoResponse( TicketID => 123, AutoResponseType => 'auto reply', OrigHeader => { From => 'some@example.com', Subject => 'For the message!', }, UserID => 123, );
Events: ArticleAutoResponse
Get the transmission status for one article.
my $TransmissionStatus = $ArticleBackendObject->ArticleTransmissionStatus( ArticleID => 123, # required );
This returns something like:
$TransmissionStatus = { ArticleID => 123, MessageID => 456, Message => 'Descriptive message of last communication', # only in case of failed status CreateTime => '2017-01-01 12:34:56', Status => [Processing|Failed], Attempts => 1, # only in case of processing status DueTime => '2017-01-02 12:34:56', # only in case of processing status }
Creates a Transmission Error entry for one article.
my $Success = $ArticleBackendObject->ArticleCreateTransmissionError( ArticleID => 123, # Required MessageID => 456, # Optional Message => '', # Optional );
Get the Transmission Error entry for a given article.
my %TransmissionError = $ArticleBackendObject->ArticleGetTransmissionError( ArticleID => 123, # Required ); Returns: { ArticleID => 123, MessageID => 456, Message => 'Descriptive message of last communication', CreateTime => '2017-01-01 01:02:03', Status => 'Failed', } or undef in case of failure to retrive a record from the database.
Updates the Transmission Error.
my $Result = $ArticleBackendObject->ArticleUpdateTransmissionError( ArticleID => 123, # Required MessageID => 456, # Optional Message => 'Short descriptive message', # Optional );
Returns 1 on Success, undef on failure.
This software is part of the OTRS project (https://otrs.org/).
This software comes with ABSOLUTELY NO WARRANTY. For details, see the enclosed file COPYING for license information (GPL). If you did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.