2017-10-22 15 views
0

設定ファイルに自分のsmtpメーラーを設定するとうまくいきます。しかし、私が手動でSMPTメーラーを作成すると失敗します(Connectionは拒否しました)。誰でも助けることができますか?yii2 mailer smtp connection refused

Yii2設定ファイル:

$mailer = new \yii\swiftmailer\Mailer(); 
$mailer->transport = new \Swift_SmtpTransport(); 
$mailer->transport 
    ->setHost('smtp.gmail.com') 
    ->setPort(587) 
    ->setEncryption('tls'); 
$mailer->transport->setUsername('[email protected]'); 
$mailer->transport->setPassword('password'); 
を、私はエラーメッセージが表示されます:

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

私のコントローラで、次のコードは動作しません接続は、私が試してみました#111

を拒否しましたsslのポート465と私は同じメッセージを受け取ります。

これを行う主な理由は、それぞれに独自のsmtpを持つ異なるクライアントアカウントがあることです。したがって、クライアントごとに1つのアカウントが必要となり、設定ファイルを使用してそのようにすることはできません。

ご協力いただきありがとうございます。

+0

$ mailerオブジェクトを作成する必要はありません。あなたがやったように構成が設定されると、あなたはメールを設定します。 –

+0

@RajeshPradhanありがとうございます - しかし、私は3つの異なる設定(SMTPアカウントごとに1つ)が必要です。それ、どうやったら出来るの? – DrBorrow

+0

これをチェックしてください.https://github.com/yiisoft/yii2/issues/2723たとえば、mailer2はYii :: $ app-> mailer2-> compose()を呼び出します。 malier2は異なる設定になります。あなたに質問がある場合、私に知らせてください。 –

答えて

1

私は、カスタムのメーラーの設定

Yii::$app->mailer2->compose() 
     ->setFrom('[email protected]') 
     ->setTo('[email protected]') 
     ->setSubject('Subject') 
     ->setTextBody('Plain text content') 
     ->setHtmlBody("Hello") 
     ->send(); 

コンポーネントを作成すると、次のデフォルトの設定

Yii::$app->mailer->compose() 
     ->setFrom('[email protected]') 
     ->setTo('[email protected]') 
     ->setSubject('Subject') 
     ->setTextBody('Plain text content') 
     ->setHtmlBody("Hello") 
     ->send(); 

のためである以下の

'components'=[ 
    'mailer' => [ //Your default mailer 
     'class' => 'yii\swiftmailer\Mailer', 
     'transport' => [ 
      'class' => 'Swift_SmtpTransport', 
      'host' => 'smtp.gmail.com', 
      'username' => '[email protected]', 
      'password' => 'password', 
      'port' => '587', 
      'encryption' => 'tls', 
     ], 
    ], 
'mailer2' => [ //Your custom mailer 
     'class' => 'yii\swiftmailer\Mailer', 
     'transport' => [ 
      'class' => 'Swift_SmtpTransport', 
      'host' => 'smtp.gmail.com', 
      'username' => '[email protected]', 
      'password' => 'new_password', 
      'port' => 'new_port587', 
      'encryption' => 'new_tls', 
     ], 
    ] 

に従うように私がやった、それは私のために働いてみました最速のソリューションです。それ以外の場合は、パラメータを使用して設定を保存し、必要です。

+0

ありがとうRajesh。あなたの記事を読んで、私は本当に簡単な間違いを犯したことに気付きました!私はあなたのアプローチをコピーして、それは素晴らしい作品です。どうもありがとうございます! – DrBorrow

+0

これを聞いてうれしいです。 –

関連する問題