This is the documentation for concrete5 version 5.6 and earlier. View Current Documentation

Sending Mail

Sending Mail is accomplished with the Mail helper. This helper allows you to compose a message, specify one or multiple recipients, create a subject, load message text dynamically or from a template, and send the mail. Mail will automatically be sent using the built-in mail settings (which can specify a local mail server or an external SMTP server.) As of concrete5 5.3.3 the Mail Helper is a simple wrapper for the Zend_Mail object.

Loading the Helper

	$mh = Loader::helper('mail');

Simple Example

$mh->setSubject(‘Simple Message’);
$mh->setBody(‘This is my simple message body.’);
$mh->to([email protected], ‘Andrew Embler’)
$mh->to([email protected]);
$mh->from([email protected]);

Loading email content from an external template.

You may load email content from a template, which will need to be located in the local mail/ directory. These templates are simply a collection of PHP variables like $body, $subject, and $from. Additional PHP variables can be specified within these variables and then passed through the MailHelper::addParameter method.

Example of the forgot_password.php mail template

	//php code
$subject = t("Forgot Password");
$body = t("

Dear %s,

You have requested a new password for the site %s

Your username is: %s

You may change your password at the following address:


Thanks for browsing the site!

", $uName, SITE, $uName, $changePassURL);

Sending mail using this template

$mh->from([email protected]);
$mh->to([email protected]');
$mh->addParameter(‘uName’, ‘aembler’);
$mh->addParameter(‘changePassURL’, ‘’);


$r = $mh->getMailerObject()

Returns an associative array containing the Zend Mailer objects. The ‘mail’ key of the array contains the Zend_Mail object, and the ‘transport’ key of the array contains the Zend_Mail_Transport object.

$mh->addParameter($key, $value)

Adds a parameter to a mail template.

$mh->load($mailTemplate, $pkgHandle = null)

Loads a mail template file. First checks the local directory, then a packages directory (if pkgHandle is specified), then the core directory.


Sets the body of an email message if you don’t want to load it using load() method.


Sets the subject of an email message.

$subject = $mh->getSubject()

Gets the current subject of the email message.

$body = $mh->getBody()

Gets the current body of an email message.


Sets up mail importer validation and response processing for a given mail message. You can learn more about this in the _Mail Importers Section_ (link to mail importers in system.)

$mh->from($email, $name = null)

Sets the from email address and name for the email message.

$mh->to($email, $name = null)

Sets a recipient for the email message. to() may be called multiple times on the same instance of the mail helper.


Sends the mail message. Takes care of logging emails, setting up subjects from a loaded mail helper, etc…

Loading Conversation