本文介绍一个简单的用ZF2发送邮件的方法
Step 1: 设置邮件配置文件
这里一163邮箱为例,如果是gmail需要开启ssl
在config目录下添加全局配置文件email.config.php
(path:/config/email.confog.php)
<?php return array( 'name' => 'smtp.163.com', 'host' => 'smtp.163.com', 'port' => 25, 'connection_class' => 'login', 'connection_config' => array( 'username' => 'wmistar@163.com', 'password' => '*********', //'ssl' => 'ssl', ), );
Step 2: 建立邮件发送控制器
(建议独立创建一个累来完成该工作)这里就直接在控制器中操作。
(path:/module/Application/src/Application/Controller/EmailController.php)
<?php /** * ZF2发送邮件的控制器示例 * * @author Star <wmistar@gmail.com> * @license http://mushroot.com * @version: 1.0 * */ namespace Application\Controller; use Zend\Mvc\Controller\AbstractActionController; use Zend\Mail; use Zend\Mail\Transport\Smtp as SmtpTransport; use Zend\Mail\Transport\SmtpOptions; use Zend\Mime\Message as MimeMessage; use Zend\Mime\Part as MimePart; class EmailController extends AbstractActionController { public function emailAction() { //获取配置信息 $config = $this->getServiceLocator()->get('config'); $mail_conf = $config['mail_conf']; $mail_user = $mail_conf['connection_config']['username']; $body = '邮件内容'; $html = new MimePart($body); $html->type = "text/html"; //邮件内容格式 $body = new MimeMessage(); $body->setParts(array($html)); $mail = new Mail\Message(); $mail->setBody($body); $mail->setEncoding("UTF-8"); $mail->setFrom($mail_user, '发件人'); $mail->addTo('wm_star001@163.com', '收件人'); $mail->setSubject('邮件标题'); $transport = new SmtpTransport(); $options = new SmtpOptions($mail_conf); $transport->setOptions($options); $transport->send($mail); echo '发送成功'; exit(); } }