使用yii框架实现邮件发送
2016-11-14 19:49
543 查看
yii2中官方为了解决邮件发送问题,提供了swiftMailer扩展。
我们先来了解下什么是swiftMailer。
Swift是一个完全采用面向对象编码用于发送e-mail的PHP函数库。Swift不依赖于PHP的mail()函数,
因为用它发送多封邮件时会占用较高的服务器资源。Swift通过直接连到SMTP服务器或MTA能够更快,更高效地发送邮件。
官方文档上做出了简单的使用说明。我们也来参考下。
1.首先配置
在common/config/main-local.php 中配置
[html]
view plain
copy
return [
//....
'components' => [
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
// 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.163.com',
'username' => '***@163.com',
'password' => '******',
'port' => '25',
'encryption' => 'tls',
],
'messageConfig'=>[
'charset'=>'UTF-8',
'from'=>['***@163.com'=>'礼']
],
],
],
];
2.控制器中
方法中调用:
[html]
view plain
copy
$mail= Yii::$app->mailer->compose();
$mail->setTo('***@qq.com'); //要发送给那个人的邮箱
$mail->setSubject("邮件主题"); //邮件主题
$mail->setTextBody('测试text'); //发布纯文字文本
$mail->setHtmlBody("测试html text"); //发送的消息内容
var_dump($mail->send());
就这样就可以发送邮件了!注:如果一直报错,排除掉密码错误或者代码错误外,还有可能是网速原因!
我们先来了解下什么是swiftMailer。
Swift是一个完全采用面向对象编码用于发送e-mail的PHP函数库。Swift不依赖于PHP的mail()函数,
因为用它发送多封邮件时会占用较高的服务器资源。Swift通过直接连到SMTP服务器或MTA能够更快,更高效地发送邮件。
官方文档上做出了简单的使用说明。我们也来参考下。
1.首先配置
在common/config/main-local.php 中配置
[html]
view plain
copy
return [
//....
'components' => [
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
// 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.163.com',
'username' => '***@163.com',
'password' => '******',
'port' => '25',
'encryption' => 'tls',
],
'messageConfig'=>[
'charset'=>'UTF-8',
'from'=>['***@163.com'=>'礼']
],
],
],
];
2.控制器中
方法中调用:
[html]
view plain
copy
$mail= Yii::$app->mailer->compose();
$mail->setTo('***@qq.com'); //要发送给那个人的邮箱
$mail->setSubject("邮件主题"); //邮件主题
$mail->setTextBody('测试text'); //发布纯文字文本
$mail->setHtmlBody("测试html text"); //发送的消息内容
var_dump($mail->send());
就这样就可以发送邮件了!注:如果一直报错,排除掉密码错误或者代码错误外,还有可能是网速原因!
相关文章推荐
- thinkphp框架使用PHPMailer实现发送邮件的功能,以及各种问题解析
- PHP_thinkphp框架使用PHPMailer实现发送邮件的功能,以及各种问题解析
- Thinkphp框架使用PHPMail实现发送邮件
- Yii 使用gmail发送邮件
- 如何使用cdosys.dll实现发送邮件
- asp.net使用smtp协议实现简单的发送邮件(支持附件)
- 使用 MAPI 实现邮件发送
- 使用Pear和php socket来实现通过smtp验证发送邮件
- YII+DWZ框架,使用swfupload实现上传
- linux脚本发送邮件 shell发送邮件(使用 msmtp+mutt+shell来实现)
- 使用Java Mail实现简单的邮件发送
- ASP下使用CDO.Message实现需要身份验证的邮件发送
- 使用Nvelocity实现发送邮件功能(ASP.NET MVC2环境下)
- 使用iOS开源库SKPSMTPMessage实现邮件发送
- 使用 MAPI 实现邮件发送
- 使用MailMessage和SmtpClient类实现asp.net的邮件发送(有详细注释并已测试通过)
- 如何使用JMAIL组件实现邮件的发送与接收
- 使用System.Net.Mail类实现邮件发送
- 使用Spring实现邮件发送
- 一步一步教你使用Jmail实现邮件的接收与发送