PHPMailer (SMTP E-posta Gönderimi)
artiframe add phpmailer eklentisi, dünyanın en çok kullanılan e-posta gönderim kütüphanesi olan phpmailer/phpmailer paketini projenize ekler.
PHP'nin yerleşik mail() fonksiyonunun spama düşme, SMTP hataları ve sunucu engellemeleri gibi dertleriyle uğraşmak yerine, src/Service/Mailer.php wrapper'ı üzerinden güvenle ve dosya ekli HTML mailler atabilirsiniz.
Eklentiyi kurmak için terminalinize şu komutu girin:
$ artiframe add phpmailer
Komut çalıştıktan sonra .env dosyanıza SMTP yapılandırma değişkenleri eklenecektir. Bu bilgileri hosting veya mail sağlayıcınızdan (Örn: Yandex, Gmail, AWS SES) alarak doldurmalısınız.
SMTP_HOST=smtp.gmail.com
SMTP_PORT=465
[email protected]
SMTP_PASS=eposta_sifreniz_veya_uygulama_sifresi
SMTP_SECURE=ssl
[email protected]
SMTP_FROM_NAME="ArtiFrame App"
ArtiFrame Mailer sınıfı fluent (zincirleme) yapıya sahiptir. Bağlantı ayarlarını her defasında yazmanıza gerek kalmaz, doğrudan .env dosyasından çekilir.
<?php
use Src\Service\Mailer;
// Mailer'ı Başlat
$mailer = Mailer::create();
try {
$isSent = $mailer
->to('[email protected]', 'Ahmet Yılmaz') // Alıcı (İsim opsiyoneldir)
->subject('Siparişiniz Alındı') // Mail Konusu
->html('<h1>Merhaba Ahmet!</h1><p>Siparişin hazırlanıyor...</p>') // HTML İçerik
->send(); // Gönder!
echo "E-posta başarıyla gönderildi!";
} catch (Exception $e) {
echo "E-posta gönderilemedi: " . $e->getMessage();
}
CC herkesin gördüğü kopya, BCC ise gizli kopya alıcıları içindir.
<?php
Mailer::create()
->to('[email protected]')
->cc('[email protected]') // Görünür Kopya
->bcc('[email protected]') // Gizli Kopya
->subject('Haftalık Rapor')
->html('Rapor ektedir.')
->send();
Sunucunuzda bulunan dosyaları zahmetsizce e-postaya ekleyebilirsiniz. Eklenen dosyanın adını e-postada farklı gösterebilirsiniz.
<?php
Mailer::create()
->to('[email protected]')
->subject('Aylık Faturanız')
->html('Lütfen ekteki faturanızı inceleyin.')
// 1. Parametre: Dosyanın fiziksel yolu, 2. Parametre: E-postada görünecek ismi
->attach(__DIR__ . '/../../storage/invoices/INV-1001.pdf', 'Fatura_INV1001.pdf')
->attach(__DIR__ . '/../../storage/docs/sozlesme.docx') // İsim verilmezse dosya adını kullanır
->send();
E-postanın HTML içeriğinde logonuzu veya banner'ınızı <img src="..."> olarak gösterdiğinizde, bazen mail istemcileri güvenlik sebebiyle resmi engeller (Resimleri İndir uyarısı çıkar). Bunu önlemek için resmi e-postaya "gömersiniz" ve benzersiz bir kimlik (CID) ile HTML'den çağırırsınız.
<?php
$html = '
<h2>Tebrikler!</h2>
<p>Hesabınız doğrulandı.</p>
<img src="cid:sirket_logosu" alt="Logomuz" style="width: 200px;">
';
Mailer::create()
->to('[email protected]')
->subject('Hesap Doğrulama')
->html($html)
// 1. Parametre: Dosya yolu, 2. Parametre: CID (İçerikteki kimlik), 3. Parametre: Dosya ismi
->embedImage(__DIR__ . '/../../public/assets/img/logo.png', 'sirket_logosu', 'logo.png')
->send();