首页 > 代码库 > ZendFramework2学习笔记 发送email

ZendFramework2学习笔记 发送email

    ZF2中发送email有2种方式,一是通过系统的邮件程序发送email,二是通过smtp协议使用远程的smtp服务器发送email。

    相关的类有:

use Zend\Mail\Message;//email消息类
use Zend\Mail\Transport\Sendmail;//通过系统邮件程序的发送类
use Zend\Mail\Transport\Smtp;//通过smtp协议使用远程smtp服务器的发送类
use Zend\Mail\Transport\SmtpOptions;//设置smtp类的参数类

    使用也比较简单,以下以mail.qq.com的smtp服务器为例,不多的代码就能实现发送email的功能:

use Zend\Mail\Message;
use Zend\Mail\Transport\Sendmail;
use Zend\Mail\Transport\Smtp;
use Zend\Mail\Transport\SmtpOptions;

class TestController extends AbstractActionController {

    //通过smtp发送邮件
    public function sendsmtpmailAction(){
        $msg = new Message();
        $msg->setFrom("xxxxx@qq.com", "xxxxx")
                ->setTo("yyyyy@qq.com", "yyyyy")
                ->setSubject("Email Title")
                ->setBody('This is an email !');
        $smtpOpt = new SmtpOptions(array(
            'name' => 'smtp.qq.com',
            'host' => 'smtp.qq.com',//qq的免费邮箱服务器
            'port' => 25,
            'connection_class' => 'login',
            'connection_config' => array(
                'username' => 'xxxxx',//qq账号,或者申请了字符邮箱名的字符邮箱名
                'password' => '1234567890',//邮箱登陆密码
            ),
        ));
        $trans = new Smtp();
        $trans->setOptions($smtpOpt);
        $trans->send($msg);
        return new JsonModel();
    }

    //通过系统的邮件程序发送邮件
    public function sendmailAction(){
        $msg = new Message();
        $msg->setFrom("xxxxx@example.com", "xxxxx")
                ->setTo("yyyyy@qq.com", "yyyyy")
                ->setSubject("Email Title")
                ->setBody('This is an email !');
        $trans = new Sendmail();
        $trans->send($msg);
        return new JsonModel();
    }
}






ZendFramework2学习笔记 发送email