当前位置: 首页 > 后端技术 > PHP

Yii2发送邮件

时间:2023-03-30 03:01:28 PHP

参考http://www.manks.top/yii2_swi...直接上代码1.配置文件web.php'mailer'=>['class'=>'yii\swiftmailer\Mailer','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','用户名'=>'XXX@163.com',//改成你自己的用户名和密码'password'=>'XXX','port'=>'994',//或者25端口'encryption'=>'ssl',//或tls],'messageConfig'=>['charset'=>'UTF-8','from'=>['XXX@163.com'=>'发件人姓名']],],2.基本用法publicfunctionactionSend(){$mail=Yii::$app->mailer->compose();$邮件->设置To('XXX@qq.com');//要发送给那个人的电子邮件$mail->setSubject("Mailsubject");//邮件主题$mail->setTextBody('testtext');//发布纯文本$mail->setHtmlBody("testhtml");//发送邮件内容var_dump($mail->send());}3.发送多封邮件publicfunctionactionSendmult(){$users=['XXX@163.com','XXX@qq.com'];foreach($usersas$user){$messages[]=Yii::$app->mailer->compose()->setTo($user)->setSubject('测试对象')->setHtmlBody('

测试多封邮件

');$res=Yii::$app->mailer->sendMultiple($messages);如果($res){echo'成功';}}4.发送邮件的模板控制器代码:publicfunctionactionSendtem(){$res=Yii::$app->mailer->compose('welcome',['html'=>'html',//关键是fixed,值为模板文件名,layout文件在mail\layouts目录下'title'=>'Mail',//传参])->setTo('XXX@qq.com')->setSubject('消息主题')->send();变量转储($res);//true}welcome.phpfile:

五、发送文件和图片publicfunctionactionFile(){$message=Yii::$app->mailer->compose();$message->attach('img/2.png');//可访问的图片地址或文件$message->attachContent('filecontent',['fileName'=>'1.txt','contentType'=>'text/plain']);$message->setTo('XXX@qq.com');$message->setSubject('消息主题');$res=$消息->发送();如果($res){echo'成功';}}6.内容拼接图片//controllerYii::$app->mailer->compose('welcome',['title'=>'embeddedimage','imageFileName'=>'imageaccessibleaddress'])->setTo('***@163.com')->setSubject('留言主题')->send();//welcome.phpembed($imageFileName);?>">//或者这里直接写图片的可访问地址,不要使用embed方式。