2016-07-26 17 views
1

Ich versuche, eine E-Mail mit dem mitgelieferten Mailer in yii2 zu senden. Aber ich erhalte diesen Fehler, wenn ich die E-Mail abschicke.Fehler erhalten Der SSL-Vorgang ist mit Code 1 fehlgeschlagen, wenn Sie mit dem swiftmailer eine E-Mail in yii2 senden.

stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: 
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed 

Ich bin nicht sicher, dass das Setup-Problem mit meinem localhost ist.

Es folgt mein Mailer Config Code festgelegt gemeinsam/config/main-local.php

'mailer' => [ 
    'class' => 'yii\swiftmailer\Mailer', 
    'transport' => [ 
     'class' => 'Swift_SmtpTransport', 
     'host' => 'smtp-mail.outlook.com', 
     'username' => '[email protected]', 
     'password' => 'myPassword', 
     'port' => '587', 
     'encryption' => 'tls', 
    ], 
] 

Es folgt der Code, den ich eine E-Mail

$model = new email; 
if($model->load(Yii::$app->request->post(),'email') && $model->validate()){ 

    if(count($model->htmlBody)>=1){ 
    Yii::$app->mailer->compose() 
     ->setFrom("[email protected]") 
     ->setTo($model->receiver) 
     ->setSubject($model->subject) 
     ->send(); 
     Yii::$app->session->setFlash("msg","A mail has been sent"); 
    } 
    else{ 
      Yii::$app->mailer->compose() 
     ->setFrom("[email protected]") 
     ->setTo($model->receiver) 
     ->setSubject($model->subject) 
     ->send(); 
     Yii::$app->session->setFlash("msg","A mail has been sent"); 

    } 
} 
return $this->render("email",['model'=>$model]); 

Antwort

0

Versuchen Sie, diese Config

einreichen versuchen
0

Ändern Sie Ihre mailer Einstellung wie in der folgenden Datei in der Datei common/config/Main-local.php

'mailer' => [ 
    'class' => 'yii\swiftmailer\Mailer', 
    'viewPath' => '@common/mail', 
    'useFileTransport' => false, 
    'transport' => [ 
     'class' => 'Swift_SmtpTransport', 
     'host' => 'smtp.gmail.com', 
     'username' => 'your username', 
     'password' => 'your password', 
     'port' => 587, 
     'encryption' => 'tls', 
     'streamOptions' => [ 
      'ssl' => [ 
       'allow_self_signed' => true, 
       'verify_peer' => false, 
       'verify_peer_name' => false, 
      ], 
     ], 
    ], 
], 

dieses Array in dem obigen Code Siehe:

'streamOptions' => [ 
     'ssl' => [ 
      'allow_self_signed' => true, 
      'verify_peer' => false, 
      'verify_peer_name' => false, 
     ], 
    ], 

verify_peer verwendet zur Überprüfung der SSL-Zertifikat verwendet wird.

verify_peer_name wird zur Überprüfung des Peernamens verwendet. Die Standardwerte für diese beiden Variablen sind TRUE, die das Problem mit Ihrem Code verursacht haben.

Lesen Sie mehr here.