2016-11-01 8 views
0

は私がYii2メーラー実際に送信していない電子メール

https://www.youtube.com/watch?v=c5pebmTUQjs&index=21&list=PLRd0zhQj3CBmusDbBzFgg3H20VxLx2mkF

が添付、 で電子メールを送信するためのYii2チュートリアル(あなたが必要な場合は、以下のリンクを参照してください)に続き、それが働きましたシステムが、送信したい電子メール情報と添付ファイルを読み込んで、その情報と添付ファイルのリンクをdbに保存するレベルで実行します。 Yiiの\ベースの\ InvalidConfigException 不明の設定 -

無効な構成:私は本当の受信者にメールを送信しようとメーラーの設定を変更したときに

はしかし、その後、問題が発生した新しい電子メール を作成しようとしましたプロパティ:Swift_MailTransport ::ホスト

ここでは、メーラーのための設定です:

'mailer' => [ 
    'class' => 'yii\swiftmailer\Mailer', 
    'viewPath' => '@app/mail', 
    'useFileTransport' => false, 
    'transport' => [ 
        'host' => 'smtp.live.com', 
        'username' => '[email protected]', 
        'password' => 'password', 
        'port' => '587', 
        'encryption' => 'tls', 
        ] 
], 

そして、ここではAですEmailsControllerのctionCreate部分:

public function actionCreate() 
    { 
     $model = new Emails(); 

     if ($model->load(Yii::$app->request->post())) 
     { 
      $model->attachment= UploadedFile::getInstance($model,'attachment'); 

      if ($model->attachment) 
      { 
       $time=time(); 
       $model->attachment->saveAs ('attachments/' .$time.'.' .$model->attachment->extension); 
       $model->attachment='attachments/'.$time.'.'.$model->attachment->extension; 
      } 

      if ($model->attachment) 
      { 
       $value= Yii::$app->mailer->compose() 
       ->setFrom (['[email protected]'=>'Al-Sharq Printing Press']) 
       ->setTo ($model->reciever_email) 
       ->setSubject ($model->subject) 
       ->setHtmlBody ($model->content) 
       ->attach ($model->attachment) 
       ->send(); 
      } 

      else 
      { 
       $value= Yii::$app->mailer->compose() 
       ->setFrom (['[email protected]'=>'Al-Sharq Printing Press']) 
       ->setTo ($model->reciever_email) 
       ->setSubject ($model->subject) 
       ->setHtmlBody ($model->content) 
       ->send(); 
      } 

      $model->save(); 
      return $this->redirect(['view','id'=>$model->id]);} 
      else 
       return $this -> render('create',['model'=>$model,]); 
     } 

答えて

0

あなたの構成は、追加のクラスを必要とします:

'mailer' => [ 
    'class' => 'yii\swiftmailer\Mailer', 
    'viewPath' => '@app/mail', 
    'useFileTransport' => false, 
    'transport' => [ 
     'class' => 'Swift_SmtpTransport', // <-- here 
     'host' => 'smtp.live.com', 
     'username' => '[email protected]', 
     'password' => 'password', 
     'port' => '587', 
     'encryption' => 'tls', 
    ] 
], 
+0

私は多くの参照を見て、含まれる他のクラスがありませんでした。本当に別のクラスが必要な場合は、それは何ですか?それは何のために立っていますか?ドキュメントのリンクを参照してください:http://www.yiiframework.com/doc-2.0/yii-swiftmailer-mailer.html –

+0

デフォルトの 'Swift_MailTransport'が使われています。これは[ここ](http://swiftmailer.org/docs/sending.html)に記載されているSwiftMailerのTransportクラスです。これはyii2-swiftmailer拡張の[Mailer](https://github.com/yiisoft/yii2-swiftmailer/blob/master/Mailer.php)クラスで見ることができます。 – Bizley

関連する問題