Saya mencoba mengirim email ke pengguna tertentu dengan mengetikkan URL, tetapi saya mendapatkan kesalahan berikut:
Swift_TransportException di AbstractSmtpTransport.php line 383: Diharapkan kode respon 250 tetapi mendapat kode "530", dengan pesan "530 5.7.1 Diperlukan otentikasi
Sejauh ini saya hanya mencoba membuatnya berfungsi dengan Gmail. Bagaimana saya bisa membuatnya bekerja?
Inilah yang saya miliki sejauh ini: mail.php
<?php
return [
'driver' => env('MAIL_DRIVER',' smtp'),
'host' => env('MAIL_HOST', 'smtp.gmail.com'),
'port' => env('MAIL_PORT', 587),
'from' => ['address' =>"[email protected]" , 'name' => "example"],
'encryption' => 'tls',
'username' => env('[email protected]'),
'password' => env('MyPassword'),
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,
];
Inilah yang saya miliki di rute:
Route::get('test', function() {
Mail::send('Email.test', [], function ($message) {
$message->to('[email protected]', 'HisName')->subject('Welcome!');
});
});
Ini yang saya miliki di controller saya:
class MailController extends Controller
{
public function Sending_Email()
{
$this->call('GET','Email.test');
return View('Email.test');
}
}
Dan inilah yang ada di file .env saya:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=MyUsername@gmail.com
MAIL_PASSWORD=MyPassword
php
laravel
laravel-5
email-integration
Vantheman6
sumber
sumber
Jawaban:
Saya tahu ini bekerja untuk Anda sekarang @ Vantheman6 tapi ini yang bekerja untuk saya kalau-kalau itu sama untuk orang lain.
Saya menambahkan ke file .env saya rincian layanan email yang saya gunakan. Jadi pastikan detailnya sebagai berikut
dalam file .env akurat.
CATATAN: Jangan lupa untuk me-restart server Anda setelah mengedit file .env sehingga akan memilih data baru yang Anda masukkan ke sana.
Jika Anda tidak me-restart server Anda, file .env masih akan terus menyajikan data email lama ke aplikasi meskipun Anda telah membuat perubahan yang dapat menyebabkan kesalahan ini.
sumber
php artisan config:cache
men -cache konfigurasi Anda dengan restart maka server tidak akan mengambil konfigurasi yang diperbarui. Coba jalankanphp artisan config:cache
lagiKonfigurasi file .env saya seperti ini untuk laravel 5.1
di sini yang paling penting adalah saya membuat kata sandi khusus aplikasi gmail (16 digit).
Saya perlu mengungkapkan satu hal lagi karena tidak beruntung untuk konfigurasi apa pun. Yaitu, setiap kali saya mengubah file .env perlu menjalankan perintah ini
Dan ini yang paling penting karena tanpa perintah ini laravel mengeksekusi pengaturan sebelumnya dari cache itu. Diperlukan lebih dari 10 jam untuk mencari tahu.
sumber
php artisan cache:clear
saatphp artisan config:cache
apa yang dipecahkan untuk saya. Terima kasih!php artisan config:cache
Anda mendapatkan kesalahan otentikasi karena nama pengguna dan kata sandi dalam file konfigurasi Anda salah setup.
Ubah ini:
Untuk ini:
The
env
Metode memeriksa file Anda .env. Dalam file .env Anda, Anda memanggil iniMAIL_USERNAME
, jadi itulah yang perlu Anda sampaikan keenv
metode.Satu tip pemecahan masalah: tambahkan
dd(Config::get('mail'));
sehingga Anda dapat melihat konfigurasi yang dihasilkan sebenarnya . Ini akan membantu Anda menemukan masalah seperti ini, dan tahu persis informasi apa yang akan dicoba dan digunakan Laravel. Jadi, Anda mungkin ingin menghentikannya di rute pengujian untuk sementara waktu untuk memeriksa apa yang Anda miliki:sumber
'password' => env('MAIL_PASSWORD'),
saya menarik karena di mana-mana saya diminta memasukkan alamat email dan kata sandi Anda untuk itu. Saya masih mendapatkan kesalahanSwift_TransportException in AbstractSmtpTransport.php line 383: Expected response code 250 but got code "530", with message "530 5.7.1 Authentication required. I'm sorry but where do i actually place the "
dd(Config::get('mail'));
. direktori Config berisi banyak file'host' => env('MAIL_HOST', 'smtp.gmail.com'),
MAIL_HOST
di fileMAIL_HOST=smtp.gmail.com
Jadi apa yang akhirnya saya lakukan adalah menghapus semua env dari setiap bagian file mail.php. Dan sekarang informasi yang benar sedang melewati. OMG Terima kasih itu berhasil. Anda adalah priamasalah akan diselesaikan dengan menghapus cache
sumber
Akhirnya aku berhasil! Hanya untuk berbagi, ada lebih banyak konfigurasi daripada hanya .env
Ini .env
config / mail.php juga perlu memasukkan alamat & nama agar bisa berfungsi.
sumber
Jika Anda pernah mengalami masalah yang sama dan mencoba semuanya secara online dan itu tidak berhasil, mungkin file cache konfigurasi yang mengirim informasi yang salah. Anda dapat menemukannya di bootstrap / cache / config.php. Pastikan kredensial ada di sana. Butuh waktu seminggu untuk memikirkannya. Saya berharap ini akan membantu seseorang suatu hari nanti.
sumber
Untuk tujuan pengembangan https://mailtrap.io/ memberi Anda semua pengaturan yang perlu ditambahkan dalam file .env. Misalnya:
Kalau tidak untuk tujuan implementasi, Anda bisa mendapatkan kredensial smtp untuk ditambahkan dalam file .env dari mail (seperti gmail n all)
Setelah tambahan pastikan untuk me-restart server
sumber
Itu juga terjadi pada saya.
Jika masih tidak berhasil coba lakukan
php artisan config:cache
sumber
Untuk referensi di masa mendatang kepada orang-orang yang datang ke sini. setelah Anda menjalankan perintah yang diberikan pada jawaban ketiga di sini ( saya gunakan sekarang Laravel 5.3 ).
Anda mungkin mengalami masalah ini:
Dalam hal ini, Anda perlu menambahkannya kembali secara manual ke daftar penyedia Anda di bawah file app.php. GO-TO:
app->config->app.php->'providers[]'
dan tambahkan, seperti:Semoga Itu bisa membantu seseorang.
sumber
Saya memiliki masalah yang sama; saya
MAIL_ENCRYPTION
adatls
dimail.php
tapi itu adanull
di.env
file.Jadi saya berubah
null
menjaditls
dan berhasil!sumber
Tidak ada solusi di atas yang berfungsi untuk saya di localhost. Saya bahkan mengizinkan akses dari aplikasi yang kurang aman, mengizinkan akses melalui layar membuka captcha dan mengatur rekan verifikasi dan memverifikasi nama rekan menjadi false untuk SSL.
Akhirnya, saya menggunakan solusi pengujian SMTP open source dari MailHog. Langkah-langkahnya adalah sebagai berikut:
sumber
Itu berarti bahwa server Anda tidak memiliki akses ke Server SMTP.
Anda dapat menguji ini dengan melakukan:
Anda harus mendapatkan kesalahan Akses ditolak.
Solusinya adalah dengan hanya menggunakan server SMTP lain yang dapat diakses oleh server Anda.
sumber
Anda harus me-restart server dan menjalankan perintah ini:
Itu seharusnya bekerja.
sumber
Jika hasil Anda dari
dd(Config::get('mail'));
nol cukup gunakan perintahsumber
Pendapat saya setelah membuat perubahan pada file .env Anda me-restart server Anda dan melayani aplikasi lagi. Hanya untuk memastikan kesalahan yang sebenarnya. Tukang php dihapus dan cache setelah itu berfungsi dengan cukup baik.
sumber
Saya memiliki masalah yang sama seperti Anda, saya baru saja berhasil.
Pertama, Anda perlu memeriksa ulang bahwa pengaturan .env sudah diatur dengan benar. Ini pengaturan saya:
Pastikan kata sandi Anda bukan di antara tanda kutip :).
Dan di config / mail.php ia memiliki yang berikut, tanpa komentar.
Semoga berhasil untuk Anda :)
sumber
Dalam kasus saya: Mulai ulang server dan jalankan
php artisan config:clear
perintah.sumber
sumber