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();
    }
}<span style="font-size:18px;">
</span>

    以上仅仅是发送文本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("xxxxx@qq.com", "xxxxx")
                ->setTo("yyyyy@qq.com", "yyyyy")
                ->setSubject("Email Title");
        
        $html = new MimePart('访问<a href="http://www.baidu.com">百度</a>网站');
        $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();
    }
}







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值