参照于 http://www.manks.top/yii2_swi...
直接上代码
一、配置文件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',
'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('<h1>测试多邮件</h1>');
}
$res = Yii::$app->mailer->sendMultiple($messages);
if ($res){
echo 'success';
}
}
四、发送邮件用模板
controller代码:
public function actionSendtem(){
$res = Yii::$app->mailer->compose('welcome', [
'html' => 'html', //key固定,value是模版文件名,布局文件在mail\layouts目录下面
'title' => '邮件' ,//传递的参数
])
->setTo('XXX@qq.com')
->setSubject('Message subject')
->send();
var_dump($res); //true
}
welcome.php文件:
<h2><?= $title ?></h2>
五、发送文件和图片
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
<img src="<?= $message->embed($imageFileName); ?>"> //或者这里直接写图片的可访问地址,不用embed方法。