美文网首页
Yii2邮件发送问题

Yii2邮件发送问题

作者: liudai123 | 来源:发表于2017-09-22 17:40 被阅读12次

    刚刚看了下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邮件发送问题

          本文链接:https://www.haomeiwen.com/subject/tzefextx.html