YII2发送邮件,报服务器内部错误 [ 2.0 版本 ]
今天有个需求需要发送邮件使用了下YII2的发送邮件。配置好之后,测试代码运行报服务器内部错误。
配置文件:
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.qq.com',
'username' => '***',
'password' => '**',
'port' => '25',
'encryption' => 'tls',
],
'messageConfig'=>[
'charset'=>'UTF-8',
'from'=>['***'=>'admin']
],
]
使用qq发送。。
控制器代码:
$mail = Yii::$app->mailer->compose();
$mail->setTo('****@qq.com');
$mail->setSubject("test");
$mail->setHtmlBody("测试测试");
if ($mail->send())
echo "成功";
else
echo "失败";
die();
运行报错,send()
方法不能正确执行,这是什么原因。
最佳答案
-
我使用正常,骚年你的配置也是OK的,你确定你QQ邮箱smtp打开了??还有要注意你的端口啊。
共 1 条回复sevenyearsold 回复于 2015-07-13 13:54 回复我去看了下,QQ邮箱的smtp没开,开启需要设置密保什么的,挺麻烦的,所以我吧发送邮箱换成163邮箱(163邮箱设置已经确定开启了smtp服务),测试也是返回服务器错误;phpini的smtp的端口设置是25。
strive 觉得很赞
其他 5 个回答
-
用
ActionMailer
啊,可参考 http://guides.rubyonrails.org/action_mailer_basics.html 这里。strive 觉得很赞 -
我也是用的163发的,之前是可以,到后来不知道为什么,报了服务器内部错误,纠结了好半天,后来改用了系统内置的sendmail发送了
共 1 条回复sevenyearsold 回复于 2015-07-13 17:51 回复看来只能这样了,先用后面再研究。
-
根据这篇东西,我试着简化了一下,是可以的。
- 首先配置 common/config 下面的 main-local.php 这个配置文件,配置的项目和正文一样;不过我用的是163邮箱,也就是 smtp.163.com
- 端口目前只能用 25 ,还不能用端口 587 来搞加密传输;不知道是不是扩展没配好
- messageConfig 这个配置块我没用,也能成功发送邮件
至于我把发送的代码写在了一个 Model 里面,成功的话会返回一个字符串,再在 Controller 接收这个字符串来渲染对应的成功/失败提示页面。这回貌似发送成功与否都是返回了 false, 这会先研究研究。
共 1 条回复sevenyearsold 回复于 2015-08-13 16:58 回复我用163的不可以,使用QQ发送可以发送~
sevenyearsold
注册时间:2014-11-02
最后登录:2018-11-14
在线时长:74小时51分
最后登录:2018-11-14
在线时长:74小时51分
- 粉丝8
- 金钱4756
- 威望30
- 积分5796