资讯专栏INFORMATION COLUMN

Yii2发送邮件

xuhong / 3507人阅读

摘要:参照于直接上代码一配置文件根据实际情况配置这里如果你是的邮箱,可以参考客户端设置后再进行配置改成自己的用户名密码或者端口或者发送人的名字二基础用法要发送给那个人的邮箱邮件主题邮件主题测试发布纯文字文本测试发送的消息内容三发

参照于 http://www.manks.top/yii2_swi...
直接上代码
一、配置文件web.php

"mailer" => [ 
            "class" => "yiiswiftmailerMailer", 
             "viewPath" => "xx/mail", //根据实际情况配置
            
            "useFileTransport" => false, 
            "transport" => [ 
              //这里如果你是qq的邮箱,可以参考qq客户端设置后再进行配置 http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
                "class" => "Swift_SmtpTransport", 
                "host" => "smtp.163.com", 
                "username" => "XXX@163.com", //改成自己的用户名密码
                "password" => "XXX", 
                "port" => "994", //或者25端口
                "encryption" => "ssl", //或者tls
            ], 
            "messageConfig"=>[ 
                "charset"=>"UTF-8", 
                "from"=>["XXX@163.com"=>"发送人的名字"] 
            ], 
        ], 

二、基础用法

public function actionSend(){
        $mail= Yii::$app->mailer->compose(); 
        $mail->setTo("XXX@qq.com"); //要发送给那个人的邮箱 
        $mail->setSubject("邮件主题"); //邮件主题 
        $mail->setTextBody("测试text"); //发布纯文字文本 
        $mail->setHtmlBody("测试html"); //发送的消息内容 
        var_dump($mail->send());
    }

三、发送多个邮件

public function actionSendmult(){
        $users = ["XXX@163.com","XXX@qq.com"];
        foreach($users as $user) {
            $messages[] = Yii::$app->mailer->compose() 
                ->setTo($user) 
                ->setSubject("测试主题") 
                ->setHtmlBody("

测试多邮件

"); } $res = Yii::$app->mailer->sendMultiple($messages); if ($res){ echo "success"; } }

四、发送邮件用模板

controller代码:
public function actionSendtem(){
        $res = Yii::$app->mailer->compose("welcome", [ 
                "html" => "html", //key固定,value是模版文件名,布局文件在maillayouts目录下面
                "title" => "邮件" ,//传递的参数
            ]) 
            ->setTo("XXX@qq.com") 
            ->setSubject("Message subject") 
            ->send(); 
        var_dump($res); //true
    }
    
welcome.php文件:

五、发送文件和图片

public function actionFile(){
        $message = Yii::$app->mailer->compose(); 
        $message->attach("img/2.png"); //可访问的图片地址或者文件
        $message->attachContent("文件内容", ["fileName" => "1.txt", "contentType" => "text/plain"]); 
        $message->setTo("XXX@qq.com"); 
        $message->setSubject("Message subject"); 
        $res = $message->send();
        if ($res){
            echo "success";
        }
    }

六、内容镶嵌图片

//controller 
Yii::$app->mailer->compose("welcome", [ "title" => "嵌入图片", "imageFileName" => "图片可访问地址" ]) 
    ->setTo("***@163.com") 
    ->setSubject("Message subject") 
    ->send(); 
//welcome.php 
 //或者这里直接写图片的可访问地址,不用embed方法。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25610.html

相关文章

  • Yii2系列教程四:实现用户注册,验证,登录

    摘要:开始使用邮箱配置好了之后,我们就可以开始使用了,首先我们来修改一下我们的导航栏,因为我们想实现的就是我们常常看到的在导航栏的右侧的注册和登录按钮。 原文来自: https://jellybool.com/post/programming-with-yii2-integrating-user-regi... 本来打算昨晚写的这篇教程,但是忙着约会去了,所以现在补上吧。 上一篇...

    boredream 评论0 收藏0
  • 学习swoole的心得(一)

    摘要:假如我们要发布封邮件,用一个循环,循环遍执行发邮件操作。我采取的是第二种方式噢。安装完成,需要更改的配置,将放在这个配置中,然后重启。向服务器端发送一个字符串,服务器会返回一个字符串。以上是简单的安装和连同。 什么是swooleswoole是PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步R...

    huashiou 评论0 收藏0
  • redis的简单使用 异步发送邮件

    摘要:你是否也困在,知其然不知其所以然项目中到底怎么用一个简单的实例使用消息队列实现下异步发送邮件准备工作首先得配置服务,之前写过相关的文章,可以参考下这里的操作库使用安装的依赖库的相关配置到此中就可以使用进行操作了同步与异步那么如何实现 你是否也困在redis,知其然不知其所以然~~ 项目中,到底怎么用?? 一个简单的实例,使用消息队列实现下yii异步发送邮件 redis~~准备工作: 首...

    娣辩孩 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<