You are here

public function DrupalPHPMailer::SmtpSend in PHPMailer 6.3

Same name and namespace in other branches
  1. 5.2 includes/phpmailer.class.inc \DrupalPHPMailer::SmtpSend()
  2. 6.2 includes/phpmailer.class.inc \DrupalPHPMailer::SmtpSend()
  3. 7.4 includes/phpmailer.class.inc \DrupalPHPMailer::SmtpSend()
  4. 7.3 includes/phpmailer.class.inc \DrupalPHPMailer::SmtpSend()

Send mail via SMTP.

Wrapper around PHPMailer::SmtpSend() with exception handling.

File

includes/phpmailer.class.inc, line 89
Implements the base PHPMailer for Drupal class.

Class

DrupalPHPMailer
Base PHPMailer for Drupal implementation with support for SMTP keep-alive and setting a custom Return-Path.

Code

public function SmtpSend($header, $body) {
  if ($this->SMTPDebug) {

    // Clear possibly previously captured debug output.
    $this->drupalDebugOutput = '';
    ob_start();
  }
  try {
    $result = parent::SmtpSend($header, $body);

    // Close connection when not using SMTP keep-alive.
    if (!$this->SMTPKeepAlive) {
      $this
        ->SmtpClose();
    }
  } catch (phpmailerException $exception) {
  }
  if ($this->SMTPDebug) {
    if ($this->drupalDebug && ($this->drupalDebugOutput = ob_get_contents())) {
      drupal_set_message($this->drupalDebugOutput);
    }
    ob_end_clean();
  }

  // Reinitialize properties.
  $this
    ->Reset();
  if (isset($exception)) {

    // Pass exception to caller.
    throw $exception;
  }
  return $result;
}