You are here

function mail_safety_admin_send_original_form_submit in Mail Safety 7

Same name and namespace in other branches
  1. 7.2 mail_safety.admin.inc \mail_safety_admin_send_original_form_submit()

Form submission handler for mail_safety_admin_send_original_form.

Sends the mail to the original recipient.

1 string reference to 'mail_safety_admin_send_original_form_submit'
mail_safety_admin_send_original_form in ./mail_safety.admin.inc
Form constructor for the send to original mail address form.

File

./mail_safety.admin.inc, line 196
Admin functionality for Mail Safety

Code

function mail_safety_admin_send_original_form_submit(&$form, &$form_state) {
  if (!empty($form_state['values']['mail_id']) && ($mail = mail_safety_load($form_state['values']['mail_id']))) {

    // Resend the mail and bypass mail_alter by using the drupal_mail_system
    $mail_array = $mail['mail'];
    $mail_array['send'] = TRUE;

    // Let other modules respond before a mail is sent.
    // E.g. add attachments that were saved in the mail.
    $modules = module_implements('mail_safety_pre_send');
    foreach ($modules as $module) {
      $mail_array = module_invoke($module, 'mail_safety_pre_send', $mail_array);
    }
    $system = drupal_mail_system($mail_array['module'], $mail_array['key']);
    $mail_array = $system
      ->format($mail_array);
    $mail_array['result'] = $system
      ->mail($mail_array);
    if ($mail_array['result']) {
      drupal_set_message(t('Succesfully sent the message to @to', array(
        '@to' => $mail_array['to'],
      )));
    }
    else {
      drupal_set_message(t('Failed to send the message to @to', array(
        '@to' => $mail_array['to'],
      )), 'error');
    }
  }
  else {
    drupal_set_message(t('Could not send the mail to the original sender'), 'error');
  }
  $form_state['redirect'] = 'admin/config/development/mail_safety';
}