Laravel menggunakan perpustakaan kaya ciri percuma SwiftMailer untuk menghantar e-mel. Menggunakan fungsi perpustakaan, kita boleh menghantar e-mel dengan mudah tanpa terlalu banyak kerumitan. Templat e-mel dimuatkan dengan cara yang sama seperti paparan, yang bermaksud anda boleh menggunakan sintaks Blade dan menyuntik data ke dalam templat anda.
Jadual berikut menunjukkan sintaks dan atribut fungsi send −
Sintaks | batalkan hantar(rentetan|array $view, array $data, Closure|string $callback) |
Parameter |
|
Pemulangan | tiada apa |
Penerangan | Menghantar e-mel. |
Dalam hujah ketiga, penutupan $callback menerima contoh mesej dan dengan kejadian itu kami juga boleh memanggil fungsi berikut dan mengubah mesej seperti yang ditunjukkan di bawah.
Beberapa kaedah yang kurang biasa termasuk −
Untuk melampirkan atau membenamkan fail, anda boleh menggunakan kaedah berikut −
Mel boleh dihantar sebagai HTML atau teks. Anda boleh menunjukkan jenis mel yang anda ingin hantar dalam hujah pertama dengan menghantar tatasusunan seperti yang ditunjukkan di bawah. Jenis lalai ialah HTML. Jika anda ingin menghantar mel teks biasa, gunakan sintaks berikut.
Mail::send([‘text’=>’text.view’], $data, $callback);
Dalam sintaks ini, hujah pertama mengambil tatasusunan. Gunakan teks sebagai nama kunci paparan sebagai nilai kunci.
Langkah 1 − Kami kini akan menghantar e-mel daripada akaun Gmail dan untuk itu anda perlu mengkonfigurasi akaun Gmail anda dalam fail persekitaran Laravel - .env fail. Dayakan pengesahan 2 langkah dalam akaun Gmail anda dan buat kata laluan khusus aplikasi diikuti dengan menukar parameter .env seperti yang ditunjukkan di bawah.
MAIL_DRIVER = smtp MAIL_HOST = smtp.gmail.com MAIL_PORT = 587 MAIL_USERNAME = your-gmail-username MAIL_PASSWORD = your-application-specific-password MAIL_ENCRYPTION = tls
Langkah 2 − Selepas menukar fail .env laksanakan dua arahan di bawah untuk mengosongkan cache dan mulakan semula pelayan Laravel.
php artisan config:cache
Langkah 3 − Buat pengawal yang dipanggil Laravel - Menghantar E-mel dengan melaksanakan arahan berikut.
php artisan make:controller Laravel - Menghantar E-mel --plain
Langkah 4 − Selepas pelaksanaan berjaya, anda akan menerima output berikut −
Langkah 5 − Salin kod berikut dalam
app/Http/Controllers/Laravel - Menghantar E-mel.php fail.
app/Http/Controllers/Laravel - Menghantar E-mel.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Mail; use App\Http\Requests; use App\Http\Controllers\Controller; class Laravel - Menghantar E-mel extends Controller { public function basic_email() { $data = array('name'=>"Virat Gandhi"); Mail::send(['text'=>'mail'], $data, function($message) { $message->to('abc@gmail.com', 'Tutorials Point')->subject ('Laravel Basic Testing Mail'); $message->from('xyz@gmail.com','Virat Gandhi'); }); echo "Basic Email Sent. Check your inbox."; } public function html_email() { $data = array('name'=>"Virat Gandhi"); Mail::send('mail', $data, function($message) { $message->to('abc@gmail.com', 'Tutorials Point')->subject ('Laravel HTML Testing Mail'); $message->from('xyz@gmail.com','Virat Gandhi'); }); echo "HTML Email Sent. Check your inbox."; } public function attachment_email() { $data = array('name'=>"Virat Gandhi"); Mail::send('mail', $data, function($message) { $message->to('abc@gmail.com', 'Tutorials Point')->subject ('Laravel Testing Mail with Attachment'); $message->attach('C:\laravel-master\laravel\public\uploads\image.png'); $message->attach('C:\laravel-master\laravel\public\uploads\test.txt'); $message->from('xyz@gmail.com','Virat Gandhi'); }); echo "Email Sent with attachment. Check your inbox."; } }
Langkah 6 − Salin kod berikut dalam fail resources/views/mail.blade.php.
resources/views/mail.blade.php
<h1>Hi, {{ $name }}</h1> l<p>Sending Mail from Laravel.</p>
Langkah 7 − Tambahkan baris berikut dalam app/Http/routes.php.
app/Http/routes.php
Route::get('sendbasicemail','Laravel - Menghantar E-mel@basic_email'); Route::get('sendhtmlemail','Laravel - Menghantar E-mel@html_email'); Route::get('sendattachmentemail','Laravel - Menghantar E-mel@attachment_email');
Langkah 8 − Lawati URL berikut untuk menguji e-mel asas.
http://localhost:8000/sendbasicemail
Langkah 9 − Skrin output akan kelihatan seperti ini. Semak peti masuk anda untuk melihat output e-mel asas.
Langkah 10 − Lawati URL berikut untuk menguji e-mel HTML.
http://localhost:8000/sendhtmlemail
Langkah 11 − Skrin output akan kelihatan seperti ini. Semak peti masuk anda untuk melihat output e-mel html.
Langkah 12 − Lawati URL berikut untuk menguji e-mel HTML dengan lampiran.
http://localhost:8000/sendattachmentemail
Langkah 13 − Anda boleh melihat output berikut
Nota − Dalam fail Laravel - Menghantar E-mel.php alamat e-mel dalam kaedah dari hendaklah alamat e-mel dari mana anda boleh menghantar alamat e-mel. Secara amnya, ia mestilah alamat e-mel yang dikonfigurasikan pada pelayan anda.
Atas ialah kandungan terperinci Laravel - Menghantar E-mel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!