Laravel - E-posta Gönderme
Laravel, zengin özelliklere sahip ücretsiz kitaplık kullanır SwiftMailere-posta göndermek için. Kütüphane işlevini kullanarak, çok fazla güçlük çekmeden kolayca e-posta gönderebiliriz. E-posta şablonları, görünümlerle aynı şekilde yüklenir; bu, Blade sözdizimini kullanabileceğiniz ve şablonlarınıza veri enjekte edebileceğiniz anlamına gelir.
Aşağıdaki tabloda, sözdizimi ve öznitelikleri gösterilmektedir. send işlev -
Sözdizimi | void send (string | array $ view, array $ data, Closure | string $ callback) |
Parametreler |
|
İadeler | hiçbir şey değil |
Açıklama | E-posta gönderir. |
Üçüncü argümanda, $ callback closure mesaj örneğini aldı ve bu örnekle aşağıdaki işlevleri de çağırabilir ve mesajı aşağıda gösterildiği gibi değiştirebiliriz.
- $ message → subject ('Eğitim Noktasına Hoş Geldiniz');
- $ ileti → gönderen ('[email protected]', 'Bay Örnek');
- $ ileti → to ('[email protected]', 'Bay Örnek');
Daha az yaygın yöntemlerden bazıları şunlardır:
- $ ileti → gönderen ('[email protected]', 'Bay Örnek');
- $ ileti → returnPath ('[email protected]');
- $ ileti → cc ('[email protected]', 'Bay Örnek');
- $ ileti → bcc ('[email protected]', 'Bay Örnek');
- $ mesaj → responseTo ('[email protected]', 'Bay Örnek');
- $ mesaj → öncelik (2);
Dosyaları eklemek veya gömmek için aşağıdaki yöntemleri kullanabilirsiniz -
- $ ileti → attach ('yol / / eki.txt');
- $ ileti → embed ('yol / / ek.jpg');
Posta, HTML veya metin olarak gönderilebilir. İlk bağımsız değişkende göndermek istediğiniz posta türünü aşağıda gösterildiği gibi bir dizi geçirerek belirtebilirsiniz. Varsayılan tür HTML'dir. Düz metin postası göndermek istiyorsanız, aşağıdaki sözdizimini kullanın.
Sözdizimi
Mail::send([‘text’=>’text.view’], $data, $callback);
Bu sözdiziminde, ilk argüman bir dizi alır. Kullanımtext anahtarın değeri olarak görünümün anahtar adı olarak.
Misal
Step 1 - Şimdi Gmail hesabından bir e-posta göndereceğiz ve bunun için Gmail hesabınızı Laravel ortam dosyasında yapılandırmanız gerekiyor - .envdosya. Gmail hesabınızda 2 adımlı doğrulamayı etkinleştirin ve uygulamaya özel bir şifre oluşturun ve ardından .env parametrelerini aşağıda gösterildiği gibi değiştirin.
.env
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
Step 2 - değiştirdikten sonra .env önbelleği temizlemek ve Laravel sunucusunu yeniden başlatmak için aşağıdaki iki komutu yürütün.
php artisan config:cache
Step 3 - adlı bir denetleyici oluşturun MailController aşağıdaki komutu yürüterek.
php artisan make:controller MailController --plain
Step 4 - Başarılı bir yürütmeden sonra, aşağıdaki çıktıyı alacaksınız -
Step 5 - Aşağıdaki kodu kopyalayın
app/Http/Controllers/MailController.php dosya.
app/Http/Controllers/MailController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class MailController extends Controller {
public function basic_email() {
$data = array('name'=>"Virat Gandhi");
Mail::send(['text'=>'mail'], $data, function($message) {
$message->to('[email protected]', 'Tutorials Point')->subject
('Laravel Basic Testing Mail');
$message->from('[email protected]','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('[email protected]', 'Tutorials Point')->subject
('Laravel HTML Testing Mail');
$message->from('[email protected]','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('[email protected]', '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('[email protected]','Virat Gandhi');
});
echo "Email Sent with attachment. Check your inbox.";
}
}
Step 6 - Aşağıdaki kodu kopyalayın resources/views/mail.blade.php dosya.
resources/views/mail.blade.php
<h1>Hi, {{ $name }}</h1>
l<p>Sending Mail from Laravel.</p>
Step 7 - Aşağıdaki satırları ekleyin app/Http/routes.php.
app/Http/routes.php
Route::get('sendbasicemail','MailController@basic_email');
Route::get('sendhtmlemail','MailController@html_email');
Route::get('sendattachmentemail','MailController@attachment_email');
Step 8 - Temel e-postayı test etmek için aşağıdaki URL'yi ziyaret edin.
http://localhost:8000/sendbasicemail
Step 9- Çıktı ekranı şuna benzer görünecektir. Temel e-posta çıktısını görmek için gelen kutunuzu kontrol edin.
Step 10 - HTML e-postasını test etmek için aşağıdaki URL'yi ziyaret edin.
http://localhost:8000/sendhtmlemail
Step 11- Çıktı ekranı şuna benzer görünecektir. Html e-posta çıktısını görmek için gelen kutunuzu kontrol edin.
Step 12 - HTML e-postasını ekli test etmek için aşağıdaki URL'yi ziyaret edin.
http://localhost:8000/sendattachmentemail
Step 13 - Aşağıdaki çıktıyı görebilirsiniz
Note - içinde MailController.phpGönderen yöntemindeki e-posta adresi, e-posta adresi gönderebileceğiniz e-posta adresi olmalıdır. Genellikle, sunucunuzda yapılandırılmış e-posta adresi olmalıdır.