Laravel Mail Gönderim Rehberi (Laravel send email)

Yazar Mehmet Emin SAYIM
Yayın Tarihi December 2024
Gösterimler 129 Gösterim
Beğeniler 0 Beğeni

 

Laravel ile Mail Gönderme Rehberi

Laravel, uygulama geliştiricilerine çok sayıda özellik sunarak hızlı ve etkili bir şekilde mail gönderimi yapabilme imkânı sağlar. Bu makalede, Laravel ile mail gönderim işleminin nasıl gerçekleştirileceğini ve uygulamalı örnekleri inceleyeceğiz.

Mailer Ayarlarını Yapılandırma

Mail gönderiminden önce, config/mail.php dosyasında veya .env dosyasında gerekli ayarları yapmanız gerekir.

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=example@example.com
MAIL_FROM_NAME="Your App Name"

Mail Sınıfı Oluşturma

Laravel’de mail içeriği oluşturmak için bir mailable sınıfı oluşturabilirsiniz. Bu işlem şu komutla yapılır:

php artisan make:mail WelcomeMail

Bu komutla App\Mail klasörüne WelcomeMail adında bir dosya oluşurur. Bu dosya içinde şu alanları düzenleyebilirsiniz:

namespace App\Mail;

use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels;

class WelcomeMail extends Mailable { use Queueable, SerializesModels;

public $user;

public function __construct($user)
{
    $this->user = $user;
}

public function build()
{
    return $this->view('emails.welcome')
                ->with(['user' => $this->user]);
}

}

Mail Şablonu Oluşturma

Mailin içeriğini belirlemek için bir Blade dosyası oluşturabilirsiniz. Şu komutla şablon dosyasını oluşturun:

mkdir -p resources/views/emails

Ardından, resources/views/emails/welcome.blade.php dosyasını oluşturun ve şu kodu ekleyin:

<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>Merhaba, {{ $user['name'] }}</h1>
    <p>Sitemize hoş geldiniz!</p>
</body>
</html>

Mail Gönderimi

Mail göndermek için şu kodu kullanabilirsiniz:

use App\Mail\WelcomeMail;
use Illuminate\Support\Facades\Mail;

Route::get('/send-mail', function () { $user = ['name' => 'Mehmet Emin', 'email' => 'mehmeteminsayim@example.com'];

Mail::to($user['email'])-&gt;send(new WelcomeMail($user));

return "Mail g&ouml;nderildi!";

});

Queue (Kuyruk) Kullanımı

Yoğun bir mail trafiği söz konusuysa, Laravel’in kuyruk mekanizmasını kullanarak performansı artırabilirsiniz. Öncelikle kuyruk yapılandırması yapılmalıdır:

php artisan queue:table
php artisan migrate

Mailable sınıfında implements ShouldQueue özelliğini etkinleştirin:

class WelcomeMail extends Mailable implements ShouldQueue

Ardından, maili kuyrukta çalıştırmak için şu kodu kullanabilirsiniz:

Mail::to($user['email'])->queue(new WelcomeMail($user));

Sonuç

Laravel ile mail gönderme süreci basit ve esnektir. Mailer ayarlarından başlayarak, mailable sınıfları ve kuyruk yapılandırması ile performans artırımı sağlayabilirsiniz. Bu rehberle kendi projelerinizde mail gönderim fonksiyonunu kolayca uygulayabilirsiniz.