ホームページ  >  記事  >  バックエンド開発  >  yii2 メール送信関数

yii2 メール送信関数

不言
不言オリジナル
2018-04-19 14:45:132454ブラウズ

この記事の内容は、一定の参考値を持つ 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 は、「トークン」、「管理者」、「ユーザー」など、テンプレートにロードする必要があるさまざまなパラメーターを配置できます。上記の他のパラメータ値。値のキーが htmltext の場合は、それぞれ HTML ブロック テンプレートとテキスト ブロック テンプレートをロードすることを意味します。言及する価値があります

ビューでメールテンプレートを作成します

common/views/mail/layout を開くと、メーラーコンポーネントがすでに基本テンプレートを記述していることがわかります。そのため、必要なのは簡単な HTML コードをいくつか記述するだけです, そして、layoutを呼び出します

メールフォルダーに送信したいファイルの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 は、「トークン」、「管理者」、「ユーザー」など、テンプレートにロードする必要があるさまざまなパラメーターを配置できます。上記の他のパラメータ値。値のキーが htmltext の場合は、それぞれ HTML ブロック テンプレートとテキスト ブロック テンプレートをロードすることを意味します。言及する価値があります。 🎜🎜🎜🎜ビューでメールテンプレートを作成します🎜🎜🎜🎜 common/views/mail/layout を開くと、メーラーコンポーネントがすでに基本テンプレートを記述していることがわかります。そのため、必要なのは簡単な HTML コードをいくつか記述するだけです, そして、layoutを呼び出します🎜🎜メールフォルダに送信したいファイルのhtml形式を書きます🎜rrreee🎜これがyii2のメール送信機能です🎜🎜関連おすすめ: 🎜 🎜🎜Yii2 パスワードを忘れた場合のメールベースの操作検証🎜🎜🎜🎜yii2リセットフル認可検証🎜🎜

以上がyii2 メール送信関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。