function messaging_phpmailer_drupal_mail in Messaging 6
Same name and namespace in other branches
- 5 messaging_phpmailer/messaging_phpmailer.module \messaging_phpmailer_drupal_mail()
- 6.4 messaging_phpmailer/messaging_phpmailer.module \messaging_phpmailer_drupal_mail()
- 6.2 messaging_phpmailer/messaging_phpmailer.module \messaging_phpmailer_drupal_mail()
- 6.3 messaging_phpmailer/messaging_phpmailer.module \messaging_phpmailer_drupal_mail()
Send a message via PHPMailer. This function mimics drupal_mail. We do not use drupal_mail instead because we want to be able to send mail with both PHPMailer and MIMEMail.
1 call to messaging_phpmailer_drupal_mail()
- messaging_phpmailer_send_msg in messaging_phpmailer/
messaging_phpmailer.module - Send mail message to user account. Supports bulk sending
File
- messaging_phpmailer/
messaging_phpmailer.module, line 98 - HTML Mail using PHPMailer. Messaging method plug-in.
Code
function messaging_phpmailer_drupal_mail($message) {
include_once './' . drupal_get_path('module', 'messaging_phpmailer') . '/PHPMailer/class.phpmailer.php';
$mail = new PHPMailer();
$mail
->IsSMTP();
// telling the class to use SMTP
$mail->CharSet = 'utf-8';
$mail->ContentType = 'text/html';
$host = variable_get('messaging_phpmailer_smtp_server', ini_get('SMTP'));
if ($host) {
$mail->Host = $host;
// SMTP server
}
else {
watchdog('messaging', 'SMTP server cannot be reached.', array(), WATCHDOG_ERROR);
return FALSE;
}
// Theme the mail message
list($subject, $body) = theme('messaging_phpmailer', $message);
// Add some headers. Look for rfc2822 "From" formatting (ex: "name" <foo@bar.com>)
$from = array();
preg_match('/["\']?(?<name>.*)["\']? <(?<email>.*)>/', $message['headers']['From'], $from);
$mail->From = !empty($from['email']) ? $from['email'] : $message['headers']['From'];
$mail->FromName = !empty($from['name']) ? $from['name'] : '';
$mail
->AddAddress($message['to']);
if (!empty($message['headers']['Message-ID'])) {
$mail
->AddCustomHeader('Message-ID: ' . $message['headers']['Message-ID']);
}
if (!empty($message['headers']['Reply-To'])) {
$mail
->AddReplyTo($message['headers']['Reply-To']);
}
// Strip HTML out of $body for plaintext equivalent of HTML email.
$mail->AltBody = drupal_html_to_text($body);
// The subject has been already filtered by messaging module
$mail->Subject = $subject;
$mail->Body = str_replace("\r", '', $body);
// If enabled debug option, log everything...
if (variable_get('messaging_phpmailer_debug', 0)) {
$mail->SMTPDebug = TRUE;
watchdog('messaging', 'PHPMailer debug message: ' . $mail
->Send() . ' - ' . $mail->ErrorInfo);
}
else {
return $mail
->Send();
}
}