Merhaba arkadaşlar,
Bu yazıda Laravel ile nasıl e-posta gönderebileceğimiz konusuna değineceğim. Yazıyı yazarken en güncel sürüm olan 5.5’i kullandım.
E-posta bilgilerinizi yazabileceğimiz 2 tane yer var. Bunlardan biri .env
dosyası, diğeri ise config/mail.php
dosyası. Laravel dokümanında .env
içinden değişiklik yaparak kullanmamız öneriliyor ama gerek iş ortamında gerekse denk geldiğim makalelerdeki anlatımları incelediğimde config/mail.php
içine de bilgileri yazıp e-posta gönderildiğini gördüm. Bu seçimi size bırakarak ben 2 yolu da anlatacağım.
Öncelikle config/mail.php
yoluyla e-posta gönderelim. config/mail.php
dosyasını açıp aşağıdaki bilgileri kendimize göre güncellememiz gerekiyor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
return [ 'driver' => env('MAIL_DRIVER', 'smtp'), 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), 'port' => env('MAIL_PORT', 587), 'from' => [ 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), 'name' => env('MAIL_FROM_NAME', 'Example'), ], 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'sendmail' => '/usr/sbin/sendmail -bs', 'markdown' => [ 'theme' => 'default', 'paths' => [ resource_path('views/vendor/mail'), ], ], ]; |
Ben kendime göre güncelledim. Siz de kendi bilgilerinizi girin.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
return [ 'driver' => 'smtp', 'host' => 'smtp.benimsitem.com', 'port' => 587, 'from' => [ 'address' => 'gonderen_e_posta_adresiniz@benimsitem.com', 'name' => 'Gönderen\'in İsmi', ], 'encryption' => 'tls', 'username' => 'mail_kullanici_adiniz@benimsitem.com', 'password' => 'sifreniz', 'sendmail' => '/usr/sbin/sendmail -bs', 'markdown' => [ 'theme' => 'default', 'paths' => [ resource_path('views/vendor/mail'), ], ], ]; |
E-posta sunucusu olarak hangi servisi kullanıyorsanız yukarıya onun bilgilerini girmeniz gerekiyor. Ben doğrudan kendi sunucumdan gönderdiğim için sunucuma ait bilgileri giriyorum. Siz eğer gmail, hotmail veya yandex gibi bir servsis üzerinden gönderiyorsanız önce e-posta ayarlarınızdan gerekli güvenlik ayarlarını yapmanız gerekiyor. Güvenlik ayarları tamamlandıktan sonra e-posta bilgilerinizi yukarıdaki ayarlarda uygun yerlere girmeniz gerekiyor. Genelde host
, username
ve password
kısımları değişiyor. Diğer bilgiler ortak alanlar olduğu için pek değişmez.
Şimdi diğer yola geçelim. Laravel hızlı müdahale edebilmemiz için .env
dosyası üzerinden bazı ayarları değiştirmemize imkan sağlıyor. .env
dosyasının içini kontrol ettiğimizde e-posta için aşağıdaki satırların varsayılan olarak geldiğini görürüz.
1 2 3 4 5 6 |
MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null |
Gördüğünüz gibi bu kısım config/mail.php içindeki kodlara göre daha basit görünüyor.
1 2 3 4 5 6 |
MAIL_DRIVER=smtp MAIL_HOST=smtp.benimsitem.com MAIL_PORT=587 MAIL_USERNAME=mail_kullanici_adiniz@benimsitem.com MAIL_PASSWORD=sifre MAIL_ENCRYPTION=tls |
Yukarıda da bahsettiğim gibi ben bu yöntemi tercih ediyorum. Kod kalabalığından kurtularak e-posta için gerekli kullanıcı bilgilerimi girip işlemi bitirmiş oluyorum.
Şimdilik bu kadar. Daha sonra gmail, hotmail ve yandex üzerinden nasıl göndereceğimizi örneklendirerek makaleyi güncelleyeceğim.
Faydalı olması dileğiyle..
İlk Yorumu Siz Yapın