2015-09-21 24 views
29

Tôi đang sử dụng chức năng Laravel Mail để gửi email. Sau đây là cài đặt tệp app/config/mail.php của tôi.Mã phản hồi dự kiến ​​220 nhưng có mã "", với thông báo "" trong Laravel

'driver' => 'sendmail', 
'host' => 'smtp.gmail.com', 
'port' => 587, 
'from' => array('address' => '[email protected]', 'name' => 'MyName'), 
'encryption' => 'tls', 
'username' => 'myUsername', 
'password' => "password", 
'sendmail' => '/usr/sbin/sendmail -bs', 
'pretend' => false, 

điều khiển Thư Phương pháp

//Send Mail  
Mail::send('sendMail', array('key' => 'value'), function($message) 
{ 
    $message->to('[email protected]', 'Sender Name')->subject('Welcome!'); 
}); 

Khi tôi chạy mã nó mang lại cho tôi sau thông báo lỗi:

Swift_TransportException

Dự kiến ​​mã phản hồi 220 nhưng có mã "", với thông điệp ""

Tôi đã tạo tệp SendMail.php trong chế độ xem có chứa một số dữ liệu.

Làm cách nào để giải quyết thông báo lỗi này?

+0

bạn đã bật xác minh hai bước cho tài khoản gmail bạn đang sử dụng chưa? – Sid

Trả lời

50

Sự cố này thường có thể xảy ra khi bạn không bật xác minh hai bước cho tài khoản gmail bạn đang sử dụng để gửi email. Trước tiên, hãy bật two step verification, bạn có thể tìm thấy nhiều tài nguyên để bật xác minh hai bước. Sau khi bạn kích hoạt nó, sau đó bạn phải tạo một app password. Và sử dụng app password trong tệp .env của bạn. Khi bạn làm xong, tệp .env của bạn sẽ trông giống như thế.

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.gmail.com 
MAIL_PORT=587 
MAIL_USERNAME=<<your email address>> 
MAIL_PASSWORD=<<app password>> 
MAIL_ENCRYPTION=tls 

và bạn mail.php

<?php 

return [ 
    'driver' => env('MAIL_DRIVER', 'smtp'), 
    'host' => env('MAIL_HOST', 'smtp.gmail.com'), 
    'port' => env('MAIL_PORT', 587), 
    'from' => ['address' => '<<your email>>', 'name' => '<<any name>>'], 
    'encryption' => env('MAIL_ENCRYPTION', 'tls'), 
    'username' => env('MAIL_USERNAME'), 
    'password' => env('MAIL_PASSWORD'), 
    'sendmail' => '/usr/sbin/sendmail -bs', 
    'pretend' => false, 

]; 

Sau khi làm như vậy, chạy php artisan config:cachephp artisan config:clear, sau đó kiểm tra, email nên làm việc.

+0

không! không hoạt động –

+0

Tôi đã xem ở khắp mọi nơi và không thể tìm thấy giải pháp, nhưng bạn đã hoàn toàn cứu mạng tôi !! Cảm ơn bạn rất nhiều!!. Tôi đang bình chọn câu trả lời của bạn! – HenryDev

+0

vui vì nó đã giúp :) – Sid

8

Trong trường hợp của tôi, tôi đã phải thiết lập các

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.gmail.com 
MAIL_PORT=587 
MAIL_USERNAME=<<your email address>> 
MAIL_PASSWORD=<<app password>> 

MAIL_ENCRYPTION= ssl <<<<<<<------------------------- (FOCUS THIS) 

để làm việc đó .. Có thể là hữu ích. Phần còn lại của mã giống như @Sid nói. chỉ khác biệt là tại

MAIL_ENCRYPTION= ssl 

Và tôi không nghĩ rằng việc chỉnh sửa cả hai tập tin môi trường và ứng dụng/config/mail.php là không cần thiết. Chỉ cần sử dụng một phương pháp.

Các vấn đề liên quan