Yii2:多发送邮箱源配置方法 [ 技术分享 ]
公司有多个部门都可以使用自己的邮箱进行邮件发送,比如:市场部market@company.com,客服部service@company.com,所以需要在网站中设置多个发送邮箱源。 使用Yii2自带的swiftmailer进行配置和发送非常简单,但官网的文档及网上的文章都对这块描述的不是很详细,在此分享一下:
\common\config\main.php
//在主文件中配置通用信息
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
//false:非测试状态,发送真实邮件而非存储为文件
'useFileTransport' =>false,
],
\common\config\main-local.php
//在local文件中配置私密信息
'mailer' => [
//配置邮箱'market@company.com'
'transport'=>[
'class'=>'Swift_SmtpTransport',
'host'=>'smtp.company.com',
'username'=>'market@company.com',
'password'=>'market password',
'port'=>'465',
'encryption'=>'ssl',
],
//配置邮箱'service@company.com'
'transport'=>[
'class'=>'Swift_SmtpTransport',
'host'=>'smtp.company.com',
'username'=>'service@company.com',
'password'=>'service password',
'port'=>'465',
'encryption'=>'ssl',
],
],
\backend\controllers\MailTestController.php
function actionMail(){
//发送时的设置
$mail= Yii::$app->mailer->compose();
//使用'market@company.com'发送邮件
$mail->setFrom('market@company.com');
//使用'service@company.com'发送邮件
//$mail->setFrom('service@company.com');
$mail->setTo('johnsonda@customer.com');
$mail->setSubject("邮件测试");
$mail->setHtmlBody("Hello Mail!!<br>发布可以带<h1>html</h1>标签的文本<br><br>"); //发布可以带html标签的文本
if($mail->send()){
echo "success";
}else{
echo "fail";
}
}
将上面的'market@company.com'、'market password'等信息替换成你自己的正确邮箱配置信息,就可以实现多邮箱发送了! 在上例中输入测试地址就可以看到发送结果了:
http://localhost/mail-test/mail
(全文完)
共 10 条回复
-
sunzhenglove 回复于 2017-08-02 15:52 举报
我也试了,两个确实会被覆盖掉第一个,并导致setFrom(“第一个邮箱地址”) 报错,报错如下:
Expected response code 250 but got code "550", with message "550 5.7.1 authentication is required"
阿江
注册时间:2015-10-18
最后登录:2024-03-03
在线时长:186小时21分
最后登录:2024-03-03
在线时长:186小时21分
- 粉丝94
- 金钱16816
- 威望160
- 积分20276