Persediaan dan Konfigurasi SMTP
Buka .env fail dari folder root projek Laravel dan sediakan konfigurasi mengikut akaun Gmail anda. Anda mesti mengaktifkan "Aplikasi yang kurang selamatPilihan akaun Gmail anda untuk menghantar e-mel menggunakan pelayan SMTP Gmail.
MAIL_MAILER = smtpMAIL_HOST = smtp.gmail.com
MAIL_PORT = 465
MAIL_USERNAME = ANDA_EMAIL_ADDRESS
MAIL_PASSWORD = KATA_PASSWORD ANDA
MAIL_ENCRYPTION = ssl
***Nota:
Anda mungkin menerima ralat pengesahan SMTP semasa menghantar e-mel menggunakan pelayan akaun Gmail SMTP. Buka StreamBuffer.php fail dari lokasi berikut.
/ var / www / html / laravelpro / vendor / swiftmailer / swiftmailer /lib / kelas / Swift / Pengangkutan / StreamBuffer.php
Cari dan ganti garis 259 dengan baris berikut untuk mengesahkan pelayan SMTP Gmail.
$ options ['ssl'] = array ('verifikasi_peer' => salah, 'verifikasi_peer_name' => salah,'allow_self_signed' => benar);
Menghantar E-mel Menggunakan SMTP
Lakukan langkah-langkah berikut untuk menghantar e-mel menggunakan borang hubungan dengan membuat pengawal, pandangan, dan kelas surat.
Langkah-langkah:
Jalankan arahan berikut dari terminal untuk membuat Pengawal E-mel untuk menunjukkan borang hubungan dan menghantar e-mel menggunakan kelas mel Laravel.
$ php artisan make: pengawal EmailControllerJalankan arahan berikut untuk membuat kelas mel bernama menghantarEmail. Ini akan mewujudkan kelas di bawah Aplikasi \ Mel folder.
$ php artisan make: mail pengirimanEmailBuat fail pandangan bernama hantar e-mel.bilah.php dengan kod berikut untuk memaparkan borang hubungan.
Hubungi Kami
@if (hitung (ralat $)> 0)
- $ ralat
@foreach ($ error-> semua () sebagai $ error)
@endforeach
@endif
@if ($ message = Session :: get ('kejayaan'))
$ mesej
@endif
Buka Pengawal E-mel dan ubah kod dengan kod berikut. The Mel fasad dan menghantarEmail kelas mel diimport pada awal fail. Di sini, indeks () kaedah akan memuatkan fail paparan di penyemak imbas untuk memaparkan borang kenalan. Setelah menghantar borang, hantar () kaedah akan dipanggil. Kaedah ini akan mengesahkan borang dengan menggunakan peraturan pengesahan. The data $ array digunakan untuk menghantar nilai-nilai nama dan mesej ladang ke menghantarEmail kelas. Seterusnya, e-mel dihantar menggunakan Mel fasad. Anda mesti menetapkan alamat e-mel penerima yang sah di hingga () berfungsi sebelum melaksanakan kod. Sekiranya e-mel berjaya dihantar, maka mesej kejayaan akan dicetak.
namespace App \ Http \ Controllers;gunakan Illuminate \ Http \ Request;
gunakan Illuminate \ Support \ Facades \ Mail;
gunakan Aplikasi \ Mail \ sendEmail;
kelas EmailController meluaskan Pengawal
indeks fungsi ()
paparan kembali ('emailsend');
fungsi hantar (Permintaan $ permintaan)
$ ini-> mengesahkan (permintaan $, [
'name' => 'diperlukan',
'e-mel' => 'diperlukan | e-mel',
'message' => 'diperlukan'
]);
$ data = tatasusunan (
'name' => $ request-> nama,
'message' => $ permintaan-> mesej
);
Mel :: ke ('Alamat E-mel Penerima') -> hantar (sendEmail baru (data $));
kembali semula () -> dengan ('berjaya', 'Terima kasih kerana menghubungi kami!');
Buka menghantarEmail kelas dan ubah kod dengan kod berikut. Subjek e-mel ditentukan di dalam membina () kaedah dan templat e-mel pandangan digunakan untuk memformat kandungan e-mel, dibuat pada langkah seterusnya. Nilai yang dilalui dari Pengawal E-mel disimpan di $ e-mel objek dan dilalui di templat e-mel pandangan.
ruang nama Aplikasi \ Mel;gunakan Illuminate \ Bus \ Queueable;
gunakan Illuminate \ Contracts \ Queue \ ShouldQueue;
gunakan Illuminate \ Mail \ Mailable;
gunakan Illuminate \ Queue \ SerializesModels;
penghantaran kelasEmail dilanjutkan Boleh didapati
gunakan Queueable, SerializesModels;
/ **
* Buat contoh mesej baru.
*
* @kembali tidak sah
* /
$ e-mel awam;
fungsi awam __konstruk ($ e-mel)
$ ini-> e-mel = $ e-mel;
/ **
* Bina mesej.s
*
* @kembalikan $ ini
* /
pembinaan fungsi awam ()
kembalikan subjek $ this-> ('Mesej dari Pelawat')
-> lihat ('email_template')
-> dengan ('e-mel', $ ini-> e-mel);
Buat fail paparan templat bernama templat e-mel.bilah.php dengan kod berikut untuk menghantar e-mel berformat kepada pengirim. Nilai yang dilalui dari menghantarEmail kelas digunakan dalam templat ini.
Helo,
saya adalah $ e-mel ['name']
Pertanyaan saya adalah mengenai topik berikut:
$ e-mel ['message'].
Ia akan sangat berguna sekiranya anda memberi saya tindak balas tidak lama lagi.Terima kasih.
Sekarang, buka laman web.php fail dan tambahkan kod laluan berikut untuk membuka borang hubungan dan menghantar e-mel.
Laluan :: get ('/ contact', '[email dilindungi]');Laluan :: pos ('/ sendemail / send', '[email dilindungi]');
Jalankan URL berikut dari penyemak imbas untuk memuatkan borang kenalan.
http: // localhost / laravelpro / awam / hubungi
Isi borang dan klik pada Menghantar mesej butang untuk menghantar isi borang ke hantar () kaedah Pengawal E-mel kelas.
Sekiranya e-mel berjaya dihantar, maka anda akan mendapat pesan kejayaan, seperti yang ditunjukkan pada gambar berikut.
Sekarang, buka akaun Gmail yang anda gunakan untuk mengirim e-mel di hantar () kaedah Pengawal E-mel kelas. Sekiranya anda membuka e-mel, maka anda akan mendapat kandungan e-mel berikut, yang dihasilkan dengan menggunakan templat e-mel lihat fail.
Tutorial Video
Kesimpulannya
Terdapat banyak cara dalam kerangka Laravel untuk menghantar e-mel. Kaedah paling mudah dan mudah untuk menghantar e-mel di Laravel ditunjukkan dalam tutorial ini. Sekiranya anda mempunyai akaun Gmail, anda boleh menghantar e-mel dengan mudah dengan mengikuti langkah-langkah yang ditunjukkan dalam tutorial ini. Pelayan SMTP Gmail digunakan di sini untuk mengirim e-mel, dan tugas pengiriman e-mel diuji dengan menjalankan kod dari pelayan tempatan. Tutorial ini menunjukkan tugas menghantar e-mel berformat HTML sahaja. Anda juga dapat melakukan tugas lain, seperti lampiran fail, nama pengirim, dll., dengan menggunakan kaedah lain dari Mel kelas.