class WebformPhpMail in Webform 6.x
Same name and namespace in other branches
- 8.5 src/Plugin/Mail/WebformPhpMail.php \Drupal\webform\Plugin\Mail\WebformPhpMail
 
Extend's the default Drupal mail backend to support HTML email.
Plugin annotation
@Mail(
  id = "webform_php_mail",
  label = @Translation("Webform PHP mailer"),
  description = @Translation("Sends the message as plain text or HTML, using PHP's native mail() function.")
)
  Hierarchy
- class \Drupal\Core\Mail\Plugin\Mail\PhpMail implements MailInterface
- class \Drupal\webform\Plugin\Mail\WebformPhpMail
 
 
Expanded class hierarchy of WebformPhpMail
File
- src/
Plugin/ Mail/ WebformPhpMail.php, line 17  
Namespace
Drupal\webform\Plugin\MailView source
class WebformPhpMail extends PhpMail {
  /**
   * {@inheritdoc}
   */
  public function format(array $message) {
    // Join the body array into one string.
    $message['body'] = implode("\n\n", $message['body']);
    if (!empty($message['params']['html'])) {
      // Wrap body in HTML template if the <html> tag is missing.
      if (strpos($message['body'], '<html') === FALSE) {
        // Make sure parameters exist.
        $message['params'] += [
          'webform_submission' => NULL,
          'handler' => NULL,
        ];
        $build = [
          '#theme' => 'webform_email_html',
          '#body' => $message['body'],
          '#subject' => $message['subject'],
          '#webform_submission' => $message['params']['webform_submission'],
          '#handler' => $message['params']['handler'],
        ];
        $message['body'] = \Drupal::service('renderer')
          ->renderPlain($build);
      }
      return $message;
    }
    else {
      // Wrap the mail body for sending.
      $message['body'] = MailFormatHelper::wrapMail($message['body']);
      return $message;
    }
  }
}Members
| 
            Name | 
                  Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| 
            PhpMail:: | 
                  protected | property | The configuration factory. | |
| 
            PhpMail:: | 
                  public | function | 
            Sends an email message. Overrides MailInterface:: | 
                  2 | 
| 
            PhpMail:: | 
                  private | constant | A list of headers that can contain multiple email addresses. | |
| 
            PhpMail:: | 
                  protected static | function | Disallows potentially unsafe shell characters. | |
| 
            PhpMail:: | 
                  public | function | PhpMail constructor. | |
| 
            WebformPhpMail:: | 
                  public | function | 
            Concatenates and wraps the email body for plain-text mails. Overrides PhpMail:: |