Rumah > Soal Jawab > teks badan
Saya menggunakan perkhidmatan geganti SMTP Google Workspace untuk menghantar e-mel daripada apl Laravel saya. Ia telah berfungsi dengan baik selama lebih setahun sekarang, tetapi saya tidak pasti apa sebenarnya yang menghalangnya daripada berjalan. Apabila saya cuba menghantar e-mel, saya mendapat ralat berikut:
>>> IlluminateSupportFacadesMail::to('myemail@gmail.com')->send(new AppMailCourseEnrolmentEmail($user, AppCourse::first())); // The error SymfonyComponentMailerExceptionTransportException with message 'Expected response code "250" but got an empty response.'
Saya mengesyaki ini berkaitan dengan saya menaik taraf daripada Laravel 8 kepada Laravel 9, tetapi tidak pasti cara membetulkannya.
Sayamail.php
'smtp' => [ 'transport' => 'smtp', 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), 'port' => env('MAIL_PORT', 587), 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'timeout' => null, ],
Konfigurasi e-mel saya
MAIL_DRIVER=smtp MAIL_HOST=smtp-relay.gmail.com MAIL_PORT=587 MAIL_ENCRYPTION=TLS MAIL_FROM_NAME="My Name" MAIL_FROM_ADDRESS=myaddress@workspace.com
Saya mengesahkan melalui IP supaya tiada kata laluan dan medan nama pengguna diperlukan
Konfigurasi penghalaan Gmail GSuite saya
NOTA Dalam konfigurasi di atas, saya cuba menyemak TLS dan menukar penghantar yang dibenarkan kepada "Hanya pengguna aplikasi berdaftar dalam domain saya" tetapi masalah berterusan.
Saya cuba nasihat daripada
https://laracasts.com/discuss/channels/laravel/laravel-swift-mailer-exception-expected-response-code-250-but-got-an-empty-response-using-gmail- smtp relay database Baris gilir pemandu
Laravel 9 - Infomaniak: Kod respons dijangka "250" tetapi menerima kod "550" dengan mesej "550 5.7.1 Tidak Padan Pengirim"
https://stackoverflow.com/a/43283422/11752623
https://www.cubebackup.com/blog/how-to-use-google-smtp-service-to-send-emails-for-free/ Kaedah 3
Semua ini tidak berjaya. Terima kasih atas bantuan anda dalam menyelesaikan masalah ini.
P粉2210464252023-11-04 15:51:18
Menemui penyelesaiannya,
Saya mengakses vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php
di bawah kaedah assertResponseCode. Saya membalas dengan jawapan yang mengatakan:
421 4.7.0 Try again later, closing connection. (EHLO) r29-200a50c01d0000xxxxxxxxxxxx87edb.28 - gsmtp
Untuk butiran lanjut tentang ralat ini, sila rujuk Dokumen Google
Masalahnya ialah Swift Mailer menggunakan 127.0.0.1 sebagai domain untuk menghantar e-mel yang tidak diketahui ke Gmail.
Jadi penyelesaiannya adalah untuk menetapkan nama domain saya dalam config/mail.php
fail
'smtp' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'timeout' => null,
'local_domain' => env('MAIL_EHLO_DOMAIN', 'mydomain.com')//this line here
],
Maklumat lanjut: