Yii2邮件发送问题

刚刚看了下yii邮件发送功能。配置文件代码如下:

'components' => [

     'db' => [

       'class' => 'yii\db\Connection',

        'dsn' => 'mysql:host=localhost;dbname=yiidemo',

       'username' => 'root',

       'password' => 'root',

       'charset' => 'utf8',

],

'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.qq.com',

        'username' => '********@qq.com',

       'password' => '********',

       'port' => '465',

       'encryption' => 'ssl',

     ],

   ],

],

控制器代码:

public $modelClass = 'common\models\User';

public function actions()

{

      $actions = parent::actions();

      // 禁用"create" 操作后可用自己在控制器中写的方法

       unset($actions['update'],$actions['create'],$actions['delete']);

      //$actions['index']['prepareDataProvider'] = [$this, 'prepareDataProvider'];

      return $actions;

}

public function actionCreate(){

      $request = Yii::$app->request;

       $params = $request->post();

     if($params){

       $fromName = $request->getBodyParam('fromName');

         $fromBady = $request->getBodyParam('fromBady');

        $toName = $request->getBodyParam('toName');

      $body = $request->getBodyParam('body');

       return $this->send($fromName,$fromBady,$toName,$body);

   }

   return false;

}

/*

 * Email Send function

* @param1 $fromName

* @param1 $toName

* @param1 $body

* $return boo1ean

*

*/

public function send($fromName,$fromBady,$toName,$body = ''){

   $mail = \Yii::$app->mailer->compose()

                                                             ->setFrom([$fromName=>$fromBady])

                                                              ->setTo($toName)

                                                             ->setSubject('邮件发送配置')

                                                              ->setTextBody($body)  //发布纯文字文本

                                                             ->send();

    if($mail){

        return [

           'name' => [

                 'fromName' => $fromName,

                 'fromBady' => $fromBady,

                 'toName' => $toName,

               'body' => $body,

   ],

    'message' => '发生到['.$toName.']的邮件成功!',

    'code' => 0,

   'status' => 200,

];

   }else{

     return [

         'name' => 'Error',

          'message' => '发生到'.$toName.'的邮件失败!',

           'code' => 0,

         'status' => 402,

       ];

    }

}

你可能感兴趣的:(Yii2邮件发送问题)