$mail

Provides an API interface to email and WireMail.

// Simple usage example
$message = $mail->new();
$message->subject('Hello world')
  ->to('user@domain.com')
  ->from('you@company.com')
  ->body('Hello there big world')
  ->bodyHTML('<h2>Hello there big world</h2>');
$numSent = $message->send();

// ProcessWire 3.0.113 lets you skip the $mail->new() call if you want:
$numSent = $mail->subject('Hello world')
  ->to('user@domain.com')
  ->from('you@company.com')
  ->body('Hello there big world')
  ->bodyHTML('<h2>Hello there big world</h2>')
  ->send();

Click any linked item for full usage details and examples. Hookable methods are indicated with the icon. In addition to those shown below, the WireMailTools class also inherits all the methods and properties of: Wire.

Show $var?     Show args?       Only hookable?    

Additional methods and properties

In addition to the methods and properties above, WireMailTools also inherits the methods and properties of these classes:

API reference based on ProcessWire core version 3.0.255

Latest news

  • ProcessWire Weekly #612
    The 612th issue of ProcessWire Weekly brings in all the latest news from the ProcessWire community. Modules, sites, and more. Read on!
    Weekly.pw / 31 January 2026
  • ProcessWire 3.0.255 new main/master version
    This post covers updates made to the core between ProcessWire 3.0.247 and 3.0.255. Included are more than 70 issue fixes and 175 commits. We'll zoom in on the numerous new features and improvements to the core for one of our best new versions yet! 
    Blog / 23 January 2026
  • Subscribe to weekly ProcessWire news

“…building with ProcessWire was a breeze, I really love all the flexibility the system provides. I can’t imagine using any other CMS in the future.” —Thomas Aull