Kernel::System::Email - to send email
Global module to send email via sendmail or SMTP.
Don't use the constructor directly, use the ObjectManager instead:
my $EmailObject = $Kernel::OM->Get('Kernel::System::Email');
To send an email without already created header:
my $Sent = $SendObject->Send( From => 'me@example.com', To => 'friend@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 words!', Charset => 'iso-8859-15', MimeType => 'text/plain', # "text/plain" or "text/html" Body => 'Some nice text', InReplyTo => '<somemessageid-2@example.com>', References => '<somemessageid-1@example.com> <somemessageid-2@example.com>', Loop => 1, # not required, removes smtp from CustomHeaders => { X-OTRS-MyHeader => 'Some Value', }, Attachment => [ { Filename => "somefile.csv", Content => $ContentCSV, ContentType => "text/csv", }, { Filename => "somefile.png", Content => $ContentPNG, ContentType => "image/png", } ], EmailSecurity => { Backend => 'PGP', # PGP or SMIME Method => 'Detached', # Optional Detached or Inline (defaults to Detached) SignKey => '81877F5E', # Optional EncryptKeys => [ '81877F5E', '3b630c80' ], # Optional } ); my $Sent = $SendObject->Send( (Backwards compatibility) From => 'me@example.com', To => 'friend@example.com', Subject => 'Some words!', Charset => 'iso-8859-15', MimeType => 'text/plain', # "text/plain" or "text/html" Body => 'Some nice text', InReplyTo => '<somemessageid-2@example.com>', References => '<somemessageid-1@example.com> <somemessageid-2@example.com>', Sign => { Type => 'PGP', SubType => 'Inline|Detached', Key => '81877F5E', Type => 'SMIME', Key => '3b630c80', }, Crypt => { Type => 'PGP', SubType => 'Inline|Detached', Key => '81877F5E', }, ); if ($Sent) { print "Email queued!\n"; } else { print "Email not queued!\n"; }
Really send the mail
my $Result = $SendObject->SendExecute( From => $RealFrom, ToArray => \@ToArray, Header => \$Param{Header}, Body => \$Param{Body}, CommunicationLogObject => $CommunicationLogObject, );
This returns something like:
$Result = { Success => 0|1, ErrorMessage => '...', # In case of failure. }
Check mail configuration
my %Check = $SendObject->Check();
Bounce an email
$SendObject->Bounce( From => 'me@example.com', To => 'friend@example.com', Email => $Email, );
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.