>  기사  >  백엔드 개발  >  yii2 이메일 보내기 기능

yii2 이메일 보내기 기능

不言
不言원래의
2018-04-19 14:45:132417검색

이 글의 내용은 특정 참고 가치가 있는 yii2의 이메일 전송 기능에 관한 것입니다. 이제 모든 사람과 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다.

먼저 이메일 기능을 구현하려면 yii2의 이메일 클래스 개념을 이해하세요

yii2는 이메일 전송 문제를 해결하기 위해 SwiftMailer 확장 기능을 제공합니다.

그래서 SwiftMailer는 무엇인가요?

Swift는 이메일 전송을 위해 완전히 객체 지향 코딩을 사용하는 PHP 함수 라이브러리입니다. Swift는 PHP의 mail() 함수에 의존하지 않습니다. 왜냐하면 여러 이메일을 보내는 데 이를 사용하면 더 많은 서버 리소스를 차지하기 때문입니다. Swift는 SMTP 서버 또는 MTA에 직접 연결하여 이메일을 더 빠르고 효율적으로 보냅니다.

환경 구성
  1. 먼저 main.php에서 mailer 구성 요소를 구성하세요mailer组件

//主要是对组件中各种必要的发送邮箱的属性进行配置'mailer' => [                'class' => 'yii\swiftmailer\Mailer',                'viewPath' => '@common/mail',                'useFileTransport' =>false,//这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件
                'transport' => [                    'class' => 'Swift_SmtpTransport',                    'host' => 'smtp.qq.com',  //每种邮箱的host配置不一样
                    'username' => '11150****1@qq.com',                    'password' => '*****',//密码不是指的登录密码
                    'port' => '465',                    'encryption' => 'ssl',
                ],
            ],
  1. 在控制器或者模型中调用该组件。

$mailer = \Yii::$app->mailer->compose('seekpass',['html'=>'html','adminuser'=>$post['Admin']['adminuser'],'token'=>$_SERVER['HTTP_HOST'].Url::toRoute(['manage/emailchangepass'])."&timestamp=".$time."&token=".$token."&adminuser=".$adminuser]);            $mailer ->setFrom("1115007981@qq.com")//设置发件人,虽然写了一遍但还是要写
                    ->setTo("1115007981@qq.com")//设置收件人
                    ->setSubject("黑势力科技")//摘要
                    ->send();                    //如发送成功,则返回一个bool类型的值

在这里我们需要讲几种方法。
1、mailer组件中的compose()方法

compose($view = null, array $params = [])
$view 值得是需要加载的邮件模板,默认在common/Mailer里(由配置mailer里的viewPath属性决定)

$params 里面可以放置我们需要加载到模板里的各种参数,比如我们上面的‘token’,’adminuser’等参数值。 值得一提的是 当数值的键为htmltext时分别代表加载我们的html块模板和text块模板。

  1. 在view里创建我们的邮件模板

我们打开我们的common/views/mail/layout,我们可以看到mailer组件已经为我们写

好了基础的模板,所以我们只需要写上一些简单的html代码,再去调用layout即可

我们在mail文件夹中写上我们想发送文件的html格式

//例如:<P>尊敬的管理员<?=$adminuser;?></P><p> 你好</p><p>你的重置密码连接为:</p><a href="http://<?=$token?>">http://<?=$token?></a><p>请在5分钟之内重置密码,否则密码想会失效</p>  //token 为我们在compose中传入的值

这就是我们发送yii2中发送邮件的功能

首先要实现邮件功能,我们需要了解yii2有邮件类的概念

yii2 为了解决我们邮件发送问题,为我们提供了swiftMailer扩展。

那么什么是swiftMailer呢?

Swift是一个完全采用面向对象编码用于发送e-mail的PHP函数库。Swift不依赖于PHP的mail()函数,因为用它发送多封邮件时会占用较高的服务器资源。Swift通过直接连到SMTP服务器或MTA能够更快,更高效地发送邮件。

配置环境
  1. 首先在我们的main.php中配置我们的mailer组件

//主要是对组件中各种必要的发送邮箱的属性进行配置&#39;mailer&#39; => [                &#39;class&#39; => &#39;yii\swiftmailer\Mailer&#39;,                &#39;viewPath&#39; => &#39;@common/mail&#39;,                &#39;useFileTransport&#39; =>false,//这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件
                &#39;transport&#39; => [                    &#39;class&#39; => &#39;Swift_SmtpTransport&#39;,                    &#39;host&#39; => &#39;smtp.qq.com&#39;,  //每种邮箱的host配置不一样
                    &#39;username&#39; => &#39;11150****1@qq.com&#39;,                    &#39;password&#39; => &#39;*****&#39;,//密码不是指的登录密码
                    &#39;port&#39; => &#39;465&#39;,                    &#39;encryption&#39; => &#39;ssl&#39;,
                ],
            ],
  1. 在控制器或者模型中调用该组件。

$mailer = \Yii::$app->mailer->compose(&#39;seekpass&#39;,[&#39;html&#39;=>&#39;html&#39;,&#39;adminuser&#39;=>$post[&#39;Admin&#39;][&#39;adminuser&#39;],&#39;token&#39;=>$_SERVER[&#39;HTTP_HOST&#39;].Url::toRoute([&#39;manage/emailchangepass&#39;])."&timestamp=".$time."&token=".$token."&adminuser=".$adminuser]);            $mailer ->setFrom("1115007981@qq.com")//设置发件人,虽然写了一遍但还是要写
                    ->setTo("1115007981@qq.com")//设置收件人
                    ->setSubject("黑势力科技")//摘要
                    ->send();                    //如发送成功,则返回一个bool类型的值

在这里我们需要讲几种方法。
1、mailer组件中的compose()方法

compose($view = null, array $params = [])
$view 值得是需要加载的邮件模板,默认在common/Mailer里(由配置mailer里的viewPath属性决定)

$params 里面可以放置我们需要加载到模板里的各种参数,比如我们上面的‘token’,’adminuser’等参数值。 值得一提的是 当数值的键为htmltext

    //例如:<P>尊敬的管理员<?=$adminuser;?></P><p> 你好</p><p>你的重置密码连接为:</p><a href="http://<?=$token?>">http://<?=$token?></a><p>请在5分钟之内重置密码,否则密码想会失效</p>  //token 为我们在compose中传入的值
  1. 컨트롤러나 모델에서 구성 요소를 호출하세요.

rrreee

여기서 몇 가지 방법에 대해 이야기해야 합니다.
1. 메일러 구성 요소의 compose() 메서드

compose($view = null, array $params = [])
$view는 필요한 이메일 템플릿입니다. 로드하려면 기본값은 common/Mailer입니다(메일러 구성의 viewPath 속성에 의해 결정됨).

$params는 'token', 'adminuser' 및 'token', 'adminuser' 및 위에 있는 다른 매개변수 값입니다. 참고할 가치가 있는 점은 값의 키가 htmltext인 경우 html 블록 템플릿과 텍스트 블록 템플릿을 각각 로드한다는 의미입니다.

보기에서 이메일 템플릿 만들기

common/views/mail/layout을 열면 메일러 구성 요소가 이미 기본 템플릿을 작성했기 때문에 간단한 HTML 코드만 작성하면 됩니다. , 그리고 레이아웃을 호출

메일 폴더에 보내고 싶은 파일을 html 형식으로 작성합니다rrreee

이것은 yii2에서 이메일을 보내는 기능입니다🎜🎜먼저 이메일 기능을 구현해야 합니다. yii2의 이메일 클래스 개념 🎜🎜이메일 전송 문제를 해결하기 위해 yii2는 SwiftMailer 확장 기능을 제공합니다. 🎜🎜그래서 SwiftMailer는 무엇인가요? 🎜🎜Swift는 이메일 전송을 위해 완전히 객체 지향 코딩을 사용하는 PHP 함수 라이브러리입니다. Swift는 PHP의 mail() 함수에 의존하지 않습니다. 왜냐하면 여러 이메일을 보내는 데 이를 사용하면 더 많은 서버 리소스를 차지하기 때문입니다. Swift는 SMTP 서버 또는 MTA에 직접 연결하여 이메일을 더 빠르고 효율적으로 보냅니다. 🎜🎜환경 구성🎜🎜🎜🎜먼저 main.php에서 mailer 구성 요소를 구성하세요🎜🎜🎜rrreee🎜🎜🎜컨트롤러나 모델에서 구성 요소를 호출하세요. 🎜🎜🎜rrreee🎜여기서 몇 가지 방법에 대해 이야기해야 합니다.
1. 메일러 구성 요소의 compose() 메서드🎜🎜compose($view = null, array $params = [])
$view는 필요한 이메일 템플릿입니다. 로드하려면 기본값은 common/Mailer입니다(메일러 구성의 viewPath 속성에 의해 결정됨) 🎜🎜$params는 'token', 'adminuser' 및 'token', 'adminuser' 및 위에 있는 다른 매개변수 값입니다. 참고할 가치가 있는 점은 값의 키가 htmltext인 경우 html 블록 템플릿과 텍스트 블록 템플릿을 각각 로드한다는 의미입니다. 🎜🎜🎜🎜보기에서 이메일 템플릿 만들기🎜🎜🎜🎜common/views/mail/layout을 열면 메일러 구성 요소가 이미 기본 템플릿을 작성했기 때문에 간단한 HTML 코드만 작성하면 됩니다. , 그리고 레이아웃을 호출🎜🎜메일 폴더에 보내려는 파일을 html 형식으로 작성합니다🎜rrreee🎜이것은 yii2에서 이메일을 보내는 기능입니다🎜🎜관련 권장 사항: 🎜 🎜🎜Yii2 이메일 기반 비밀번호 분실 작업 verify🎜🎜🎜🎜yii2 재설정된 인증 확인🎜🎜

위 내용은 yii2 이메일 보내기 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.