NAME
Kernel::System::Email – to send email
DESCRIPTION
Global module to send email via sendmail or SMTP.
PUBLIC INTERFACE
new()
Don't use the constructor directly, use the ObjectManager instead:
my $EmailObject = $Kernel::OM->Get('Kernel::System::Email');
Send()
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";
}
SendExecute()
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()
Check mail configuration
my %Check = $SendObject->Check();
Bounce()
Bounce an email
$SendObject->Bounce(
From => 'me@example.com',
To => 'friend@example.com',
Email => $Email,
);