ZendFramework2学习笔记 发送email

ZendFramework2 专栏收录该内容
14 篇文章 0 订阅

    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
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

相忘于江湖-mfc

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值