2017-03-13 9 views
8

Laravelアプリケーションで連絡フォームを送信するたびに、タイトルにエラーメッセージが表示されます。私はthis discussionの勧告に従ったが、php artisan cache:clearphp artisan config:cacheの後でさえも効果がなかった。応答コード220が必要ですが、コード "" with message "

.env

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.gmail.com 
MAIL_PORT=587 
[email protected] 
MAIL_PASSWORD=password 
MAIL_ENCRYPTION=ssl 

のconfig/mail.php

<?php 

return [ 
    'driver' => env('MAIL_DRIVER', 'smtp'), 
    'host' => env('MAIL_HOST', 'smtp.gmail.org'), 
    'port' => env('MAIL_PORT', 587), 
    'from' => [ 
     'address' => env('MAIL_FROM_ADDRESS', '[email protected]'), 
     'name' => env('MAIL_FROM_NAME', 'Example'), 
    ], 
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),  
    'username' => env('MAIL_USERNAME'), 
    'password' => env('MAIL_PASSWORD'), 
    'sendmail' => '/usr/sbin/sendmail -bs', 
    'markdown' => [ 
     'theme' => 'default', 

     'paths' => [ 
      resource_path('views/vendor/mail'), 
     ], 
    ], 

]; 

私はwouldn」 'から' グローバルドキュメントからの印象の下にあった。ここでは、関連するコードです他のアドレスからのものがない限り発射できませんが、私のコントローラのメールでは、連絡先フォームに提供されたアドレスを 'from'として指定しました。エラーメッセージの詳細からのものではないようです。

問い合わせフォームは個別のビューが、メインページビューの下部ではありませんので、コントローラの機能は、PageControllerでに住んでいる

public function postContact(Request $request) { 
    $this->validate($request, [ 

     'email' => 'required|email', 
     'subject' => 'required|min:3', 
     'message' => 'required|min:10' 
    ]); 

    $data = array(
     'email' => $request->email, 
     'subject' => $request->subject, 
     'mailbody' => $request->message 
    ); 

    Mail::send('emails.contact', $data, function($message) use ($data) { 
     $message->from($data['email']); 
     $message->to('[email protected]'); 
     $message->subject($data['subject']); 
    }); 
    } 
+0

ポートを465から587に変更し、MAIL_ENCRYPTION = sslに変更しました。 また、Googleの設定から安全性の低いGoogleアプリを許可します。 – Gaurav

+0

これは古いエラーを取り除きましたが、今はStreamBuffer.php行268でSwift_TransportExceptionが発生しています: ホストsmtp.gmail.com [#0]との接続を確立できませんでした – user968270

+0

この回答を確認http:// stackoverflow .com/questions/32693528/expected-response-code-220-but-got-code-with-laravel?noredirect = 1&lq = 1 – Meera

答えて

4

私はあなたを考えます使用するメールの送信者(MAIL_FROM_ADDRESS)をメールを送信するメールとして定義する必要があります。例えば

.envであなたMAIL_USERNAME[email protected]あなたは[email protected]としてあなたMAIL_FROM_ADDRESS(またはコース$mail->from()の)を定義する必要がある場合。

Gmailでは、別のユーザー(別のアドレス)としてメールを送信することはできません。その後、

+0

試してみましたが、これで問題は解決しませんでした。 – user968270

0
MAIL_DRIVER=smtp 
MAIL_HOST=smtp.gmail.com 
MAIL_PORT=465 
[email protected] 
MAIL_PASSWORD=secreat 
MAIL_ENCRYPTION=ssl 

あなた.envファイル内のコード上で更新すると私は同じエラーを得ていたターミナル

  1. composer dump-autoload

  2. php artisan serve

0

にこれらのコマンドを実行します。 EMAIL_ENCRYPTIONを変更したときにうまくいきました の前に'encryption' => env('MAIL_ENCRYPTION', 'tps'),でした'encryption' => env('MAIL_ENCRYPTION', ''),

関連する問題