YII2 郵件發(fā)送
我的應(yīng)用是高級(jí)模板
以下是基本配置。
在 common/config/main-local.php中寫(xiě)入以下代碼配置 Mail代理
return [
'components' => [
...//your code,
//以下是 mail 的配置
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
'transport' => [
'class' => 'Swift_SmtpTransport',
//我用的是QQ 的代理,所以這里是 QQ 的配置信息
'host' => 'smtp.qq.com',
'port' => 587,
'encryption' => 'tls',
//這部分信息不應(yīng)該公開(kāi),所以后期會(huì)由數(shù)據(jù)庫(kù)中拿取
'username' => '你的 QQ 號(hào)',
'password' => '你的 QQ 密碼',
],
//發(fā)送的郵件信息配置
'messageConfig' => [
'charset' => 'utf-8',
'from' => ['410345759@qq.com' => '祝云']
],
],'
]
];
接下來(lái)就可以發(fā)送郵件了
不使用模板
$mail = Yii::$app->mailer->compose();
$mail->setTo('發(fā)送的郵箱');
$mail->setSubject('郵件的標(biāo)題');
$mail->setHtmlBody('郵件內(nèi)容,這里可以使用 HTML 代碼');
$mail->send();//發(fā)送
使用模板
//compose 與控制器中的 render 方法參數(shù)方式相同.
$mail = Yii::$app->mailer->compose('模板文件名稱', ['key' => $value]);
...
//$mail->setHtmlBody(); 在使用模板時(shí)候不要調(diào)用該方法否則會(huì)覆蓋掉模板
$mail->send();
動(dòng)態(tài)設(shè)置 mail 配置信息。
1. 先從數(shù)據(jù)中拿到你的配置信息,默認(rèn)你已經(jīng)會(huì)CRUD 了。
2. 開(kāi)始設(shè)置 HOST 等信息。
$mail = Yii::$app->mailer;
$mail->transport = $mail->transport->newInstance($host, $port, 'tls');
$mail->transport->setUsername('你的郵箱帳號(hào)');
$mail->transport->setPassword('你的郵箱密碼');
以上!