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("[email protected]", "xxxxx")
                ->setTo("[email protected]", "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("[email protected]", "xxxxx")
                ->setTo("[email protected]", "yyyyy")
                ->setSubject("Email Title")
                ->setBody('This is an email !');
        $trans = new Sendmail();
        $trans->send($msg);
        return new JsonModel();
    }
}

    以上仅仅是发送文本email,如果要发送html格式的email,则需要用到以下2个类:

use Zend\Mime\Message;
use Zend\Mime\Part;
    示例如下:
use Zend\Mail\Message;
use Zend\Mail\Transport\Sendmail;
use Zend\Mail\Transport\Smtp;
use Zend\Mail\Transport\SmtpOptions;
use Zend\Mime\Message as MimeMessage;
use Zend\Mime\Part as MimePart;

class TestController extends AbstractActionController {

    public function sendsmtphtmlmailAction(){
        $msg = new Message();
        $msg->setFrom("[email protected]", "xxxxx")
                ->setTo("[email protected]", "yyyyy")
                ->setSubject("Email Title");
        
        $html = new MimePart('访问百度网站');
        $html->type = "text/html";

        $body = new MimeMessage();
        $body->setParts(array($html));

        $msg->setBody($body);

        $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();
    }
}








你可能感兴趣的:(ZendFramework2,ZendFramework2,email,邮件,smtp,邮箱)