How can I make email template in Zend Framework?

Billy picture Billy · Aug 2, 2009 · Viewed 22.6k times · Source

I want to make email templates in Zend Framework.

For example,

<html>
<body>
Dear {$username$},<br>
This is a invitation email sent by your {$friend$}.<br>
Regards,<br>
Admin
</body>
</html>

I want to make this file, get it in Zend framework, set those parameters (username, friend) and then send the email.

How can I do that? Does Zend support this?

Answer

opHASnoNAME picture opHASnoNAME · Aug 2, 2009

Hi this is realy common.

Create an view script like : /views/emails/template.phtml

<body>
<?php echo $this->name; ?>
<h1>Welcome</h1>
<?php echo $this->mysite; ?>
</body>

and when creating the email :

// create view object
$html = new Zend_View();
$html->setScriptPath(APPLICATION_PATH . '/modules/default/views/emails/');

// assign valeues
$html->assign('name', 'John Doe');
$html->assign('site', 'limespace.de');

// create mail object
$mail = new Zend_Mail('utf-8');

// render view
$bodyText = $html->render('template.phtml');

// configure base stuff
$mail->addTo('[email protected]');
$mail->setSubject('Welcome to Limespace.de');
$mail->setFrom('[email protected]','Limespace');
$mail->setBodyHtml($bodyText);
$mail->send();