You are here

function messaging_mail_prepare in Messaging 6.2

Same name and namespace in other branches
  1. 6 messaging.mail.inc \messaging_mail_prepare()
  2. 6.3 messaging.mail.inc \messaging_mail_prepare()

Rebuild message in Drupal mail format

Parameters

$destination: Email destination

$message: Message object

$params: Aditional parameters

$alter: Whether to run the mail_alter hook

3 calls to messaging_mail_prepare()
messaging_mail_send_msg in messaging_mail/messaging_mail.module
Send mail message to user account
messaging_mime_mail_send_msg in messaging_mime_mail/messaging_mime_mail.module
Send mime mail message to user account
messaging_phpmailer_send_msg in messaging_phpmailer/messaging_phpmailer.module
Send mail message to user account. Supports bulk sending

File

./messaging.mail.inc, line 22
Common library for mail methods

Code

function messaging_mail_prepare($destination, $message, $params, $alter = TRUE) {

  // The message 'from' will depend on message sender if present, otherwise default to site mail
  $default_from = variable_get('site_mail', ini_get('sendmail_from'));
  if (empty($params['from'])) {
    if (!empty($message->sender_account) && !empty($message->sender_account->mail)) {
      $from_format = variable_get('messaging_sender_name', '[user]') . ' <' . variable_get('messaging_sender_mail', '[mail]') . '>';
      $from = token_replace($from_format, 'user', $message->sender_account);
    }
    elseif (!empty($message->sender_name) && $default_from) {
      $from = token_replace('[user]', 'user', $message->sender_account) . ' <' . $default_from . '>';
    }
    else {
      $from = $default_from;
    }
    $params['from'] = $from;
  }
  else {
    $from = $params['from'];
  }
  $params['returnpath'] = token_replace(variable_get('messaging_returnpath_mail', '[site-mail]'), 'user', $message->sender_account);

  // Build the mail object, mimic drupal_mail() format
  $mail = array(
    'id' => 'messaging_' . (!empty($message->type) ? 'message-' . $message->type : 'message'),
    'to' => $destination,
    'from' => $from,
    'language' => !empty($message->language) ? $message->language : language_default(),
    'params' => $params,
    'subject' => $message->subject,
    'body' => $message->body,
    'headers' => messaging_mail_headers($message, $params),
    'attachments' => !empty($message->files) ? $message->files : array(),
  );

  // Invoke hook_mail_alter() to allow all modules to alter the resulting e-mail.
  if ($alter) {
    drupal_alter('mail', $mail);
  }
  return $mail;
}