laravel

Hantar E-mel di Laravel Menggunakan SMTP

Hantar E-mel di Laravel Menggunakan SMTP
Menghantar e-mel adalah syarat biasa untuk sebarang aplikasi web. Beberapa penggunaan umum untuk menghantar e-mel termasuk mengesahkan pendaftaran pengguna, mendapatkan maklum balas dari pengguna, memberikan pilihan untuk menghubungi pentadbir laman web, dll. Kerangka Laravel mengandungi beberapa paket untuk menghantar e-mel dari projek Laravel. SMTP, Mailgun, Postmark, dan Amazon SES digunakan di Laravel untuk menghantar e-mel mudah, transaksi, dan pukal. Laravel mempunyai perpustakaan pengirim e-mel bernama SwiftMailer untuk menghantar e-mel dengan templat e-mel. Tutorial ini menunjukkan kepada anda cara mengirim e-mel mudah menggunakan SMTP.

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 = smtp
MAIL_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 EmailController

Jalankan arahan berikut untuk membuat kelas mel bernama menghantarEmail. Ini akan mewujudkan kelas di bawah Aplikasi \ Mel folder.

$ php artisan make: mail pengirimanEmail

Buat fail pandangan bernama hantar e-mel.bilah.php dengan kod berikut untuk memaparkan borang hubungan.




Borang Hubungi Kami












Hubungi Kami




@if (hitung (ralat $)> 0)



    @foreach ($ error-> semua () sebagai $ error)
  • $ ralat

  • @endforeach


@endif
@if ($ message = Session :: get ('kejayaan'))


$ mesej

@endif



csrf_field ()


















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.

Cara Menunjukkan Overlay OSD dalam Aplikasi dan Permainan Linux Skrin Penuh
Bermain permainan skrin penuh atau menggunakan aplikasi dalam mod skrin penuh bebas gangguan dapat memisahkan anda dari maklumat sistem yang relevan y...
5 Kad Tangkap Permainan Teratas
Kita semua telah melihat dan menyukai streaming permainan permainan di YouTube. PewDiePie, Jakesepticye, dan Markiplier hanyalah beberapa pemain terat...
Cara Membangunkan Permainan di Linux
Satu dekad yang lalu, tidak banyak pengguna Linux akan meramalkan bahawa sistem operasi kegemaran mereka suatu hari nanti akan menjadi platform permai...