<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## Yii2使用不同的方式進行郵件發送邏輯處理 [TOC]   郵件發送在日常開發中十分常見的一個功能,而Yii2已經集成了基于 SwiftMailer 庫提供了一套干凈清爽的郵件API,利用它可以很方便的進行配置發送郵件。   這里以**Advanced**版本為例操作。 ### 發送前的簡單配置 在配置文件中`/common/config/main.php`修改**components**數組中的`mailer`項。 ``` 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'useFileTransport' => false, 'viewPath' => '@common/mail', 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.qiye.163.com', 'username' => 'username@****.com', 'password' => '********', 'port' => '25', 'encryption' => 'tls', ], 'messageConfig' => [ 'charset' => 'UTF-8', 'from' => ['username@****.com' => 'luo'] ], ], ``` #### 發送郵件所用模板 `common/mail/test.php`內容如下 ``` 這是一封測試郵件,郵件內容為:<?= $data['key']; ?> ``` ### 使用Components組件 #### 編寫組件   使用**components**組件將發送郵件的業務邏輯從控制器中分離出來。   例如這里在后臺創建文件,`backend\components\EmailComponent.php`,代碼如下: ``` <?php namespace backend\components; use yii\base\Component; class EmailComponent extends Component { public function send(array $request) { if (!isset($request['to']) || !isset($request['subject'])) { \Yii::error('錯誤的郵箱配置'); return false; } return \Yii::$app->mailer->compose('test', ['data' => $request['data']]) ->setTo($request['to']) ->setSubject($request['subject']) ->send(); } } ``` #### 配置組件 配置文件在`bakcend\config\main.php`中在**components**數組中新增如下內容: ```php 'EmailComponent' => [ 'class' => 'backend\components\EmailComponent', ], ... 'urlManager' => [ ], ``` #### 調用組件 發送郵件 ```php $request['to'] = '****@qq.com'; $request['subject'] = '感謝注冊'; $request['data'] = ['key' => 'value']; Yii::$app->EmailComponent->send($request); ``` ### 使用Services依賴注入方式 #### 編寫Services文件 文件在`backend\services\EmailService.php`,內容如下: ```php <?php namespace backend\services; use yii\swiftmailer\Mailer; class EmailService { public $mail; /** * EmailService constructor. * @param Mailer $mail */ public function __construct(Mailer $mail) { $this->mail = $mail; } /** * 發送Email * @param array $request */ public function send(array $request) { $message = \Yii::$app->mailer->compose('test',['data'=>$request['data']]); // 使用common/mail/test.php模板,使用$request['data']傳遞的數據到模板 $message->setTo($request['to']); $message->setSubject($request['subject']); return $message->send(); } } ``` #### 調用Services 將EmailService依賴注入控制器,然后調用Service中的`send()`方法發送郵件。代碼如下: ```php <?php namespace backend\controllers; user backend\serivces\EmailService; user Yii\web\Controller; user Yii; class ExampleController extends Controller { protected $emailService; public function __construct($id, $module, EmailService $emailService) { parent::__construct($id, $module); $this->emailService = $emailService; } public function actionIndex() { $request['to'] = '****@qq.com'; $request['subject'] = '感謝注冊'; $request['data'] = ['key' => 'value']; $this->emailService->send($request); } } ``` ### 在Model中書寫發送郵件邏輯 參考**Advanced**高級版的`frontend/models/ConcatForm.php`相關實現代碼。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看