- Düzenlendi
Localde tasarladigim bir sitem var. Kullanıcı işlemleri için breeze kullanıyorum. E mail doğrulamasıni aktif etmek istiyorum, bunu localde yapmanın bir nyolu var mı.
Localde tasarladigim bir sitem var. Kullanıcı işlemleri için breeze kullanıyorum. E mail doğrulamasıni aktif etmek istiyorum, bunu localde yapmanın bir nyolu var mı.
Yapamadığınız ne? Mail mi gitmiyor, kodu implemente mi etmediniz?
Laravel telescope kullanarak sistemden gönderilen mailleri izleyebilirsiniz. https://laravel.com/docs/10.x/telescope
İncelemediyseniz eğer dokümandaki ilgili bölüm linki : https://laravel.com/docs/10.x/mail#mail-and-local-development
Laravel Sail kullanıyorsanız varsayılan kurulumda mailleri görüntülemek için "mailpit" içeriyor (Laravel 8 de "mailhog" bulunuyor)
Hocam breeze de forgot password kısmı aktif olarak çalışıyor sadece .env kısmından mail bilgilerini girmeniz yeterlidir
test işlemleriniz için mailtrap , mailpit veya mailhog kullanabilirsiniz
mailhog : https://github.com/mailhog/MailHog
mailtrap : https://mailtrap.io/
mailpit : https://github.com/axllent/mailpit
MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
bir soruda ben sorayim burdan. veri tabanindaki mail bilgilerini .env ye nasil çekeriz ?
aghabalaguluzade peki nasil bir çözüm bulabilriz. mail bilgilerini veri tabanından çekerek kullanmak istiyorum. nasıl bir yöntem uygulayabilriz
Dinamik e-posta ayarları oluşturmak için; AppServiceProvider.php
ya da yeni bir Provider
içerisinde yer alan boot
metodu içerisinde değişecek ayarları çekip Config::set
metodu ile e-posta ayarlarını güncelleyebilirsiniz.
ihtiyacı olanlar için paylaşıyorum: AppServiceProvider.php içinde boot fonksıyonu içine aşşadakı kodu yazdım sorunsuz çalışıyor.
$mailsetting=EmailSetting::first(); // verileri çekeceğimiz model
if($mailsetting){
$data=[
'driver'=>$mailsetting->transport,
'host'=>$mailsetting->host,
'port'=>$mailsetting->port,
'encryption'=>$mailsetting->host,
'username'=>$mailsetting->username,
'password'=>$mailsetting->password,
'from'=>[
'address'=>$mailsetting->email,
'name'=>$mailsetting->name,
],
];
}
Config::set('mail',$data);
gsahin AppServiceProvider::boot() yöntemindeki işlem her istekte çalışır; bir middleware içinde yaparsanız sadece istediğiniz rotalarda devreye girmesini sağlayabilirsiniz diyecektim ama mail olunca ve kuyrukta göndereceğinizi düşünerek vazgeçtim. Auth gereksinimiz de olmadığı için provider boot yönteminde olur. Sadece bu kısımda cache kullanabilirsiniz, her istekte gereksiz sorgu yapmamış olur