Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Mail İzleyici – DEV Community
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Mail İzleyici – DEV Community

Yazılım

Mail İzleyici – DEV Community

teknomers
Son güncelleme: 8 Temmuz 2026 17:47
teknomers
Paylaş
Paylaş

MailTracker, Laravel’dan çıkan tüm e-postalara izleme kodu eklemek için kullanılır ve gönderilen e-postaların veritabanında saklanmasını sağlar. Ayrıca, gönderilen e-postaları görüntülemek için bir arayüz de mevcuttur.


NOT: Laravel 9.x sürümü kullanıyorsanız, 9.6.0 veya daha yüksek bir sürümde olmalısınız.


1.0’dan Yükseltme

Öncelikle, aşağıdaki komutu çalıştırarak 2.0 sürümüne güncelleyin:

composer require zanysoft/mail-tracker ~2.0
        

Eski bir sürümden güncelleniyorsanız, yapılandırma dosyanızı güncelleyip yeni migration’ları çalıştırmanız gerekecek. En iyi sonuçlar için, özelleştirdiğiniz değerleri geri yüklemek üzere config/mail-tracker.php dosyanızın bir yedeğini alın ve resources/views/vendor/emailTrackingViews bölümündeki görünümleri (varsa) silin ve ardından aşağıdaki komutu çalıştırın:

php artisan vendor:publish --provider="ZanySoft\MailTracker\MailTrackerServiceProvider" --force
        
php artisan migrate
        


Kurulum

Composer üzerinden kurulum:

composer require zanysoft/mail-tracker
        

Yapılandırma dosyasını ve migration’ları yayınlayın:

php artisan vendor:publish --provider="ZanySoft\MailTracker\MailTrackerServiceProvider"
        

Migration’ları çalıştırın:

php artisan migrate
        

Not: Modellerinizi saklamak için farklı bir bağlantı kullanmak isterseniz, migration’lardan önce mail-tracker.php yapılandırma girişini connection olarak güncellemeyi unutmayın.


Kullanım

Kurulum tamamlandıktan sonra, tüm giden e-postalar veritabanına kaydedilecektir. config/mail-tracker.php dosyasında mevcut olan yapılandırma seçenekleri şunlardır:

  • name: Uygulama adınızı ayarlayın.
  • inject-pixel: HTML e-postalara izleme pikseli eklemek için true olarak ayarlayın.
  • track-links: Tüm bağlantı URL’lerini izleme bağlantısı içerecek şekilde değiştirmek için true olarak ayarlayın.
  • expire-days: E-posta veritabanında ne kadar süre kalacak? Sıfır ayarlarsanız e-postalar asla silinmez.
  • route: İzleme URL’leri için yol bilgisi. Ön ek ve middleware olarak ayarlayın.
  • admin-route: Admin için yol bilgisi. Ön ek ve middleware olarak ayarlayın.
  • admin-template: Admin Paneli ve Görünümler için parametreler. Mevcut Admin Panelinizi MailTracker ile entegre edebilirsiniz.
  • date-format: Admin Panelinde tarihleri görüntülemek için formatı tanımlayabilirsiniz.
  • content-max-size: İçerik database alanı için varsayılan maksimum uzunluk sınırını değiştirebilirsiniz.

E-postaların izlenmesini istemiyorsanız, mesajınıza X-No-Track header’ını ekleyin. Bu header, izleme işleminden kaçınmak için rastgele bir string içerir. E-posta gönderilmeden önce header kaldırılacaktır.

\Mail::send('email.test', [], function ($message) {
            // ... diğer ayarlar
            $message->getHeaders()->addTextHeader('X-No-Track', Str::random(10));
        });
        


E-posta İçeriklerini Dosya Sisteminde Saklama

Varsayılan olarak, e-postaların içeriği veritabanındaki content sütununda saklanır. E-postalar fazla sayıda gönderiliyorsa, bu çok fazla bellek tüketebilir. Yapılandırmanıza göre içeriğin dosya sistemine kaydedilmesini sağlayabilirsiniz.

'log-content-strategy' => 'filesystem',
        'tracker-filesystem' => null,
        'tracker-filesystem-folder' => 'mail-tracker',
        

Dosya sistemini kullanmak için log-content-strategy‘yi database‘den filesystem‘e değiştirmeniz gerekir. tracker-filesystem ile diskinizi ve tracker-filesystem-folder ile dosyanın saklanacağı klasörü belirleyebilirsiniz.


Modelleri Geçersiz Kılma

Bazı durumlarda yerleşik modelleri geçersiz kılmak isteyebilirsiniz. Bunu AppServiceProvider içinde kolayca yapabilirsiniz:


        MailTracker::useSentEmailModel(YourOwnSentEmailModel::class);
        MailTracker::useSentEmailUrlClickedModel(YourOwnSentEmailUrlClickedModel::class);
        

Modelinizin SentEmailModel veya SentEmailUrlClickedModel arayüzünü uygulaması gerekir. Bu paket, kendi modellerinizi kolayca uygulamak için “traits” sunar ve mevcut kodu tekrar yazmanıza gerek kalmaz.

use Illuminate\Database\Eloquent\Model;
        use ZanySoft\MailTracker\Concerns\IsSentEmailModel;
        use ZanySoft\MailTracker\Contracts\SentEmailModel;

        class OwnEmailSentModel extends Model implements SentEmailModel {
            use IsSentEmailModel;

            protected static $unguarded = true;

            protected $casts = [
                'meta' => 'collection',
                'opened_at' => 'datetime',
                'clicked_at' => 'datetime',
            ];
        }
        


Belirli E-postalarda İzlemeyi Atlama

İzleme istemediğiniz belirli bir e-posta varsa, e-postanıza X-No-Track header’ını ekleyebilirsiniz. Bu, e-postanın izlenmesini engeller. Ayrıca Laravel 9’dan itibaren, Mailable sınıfınıza bir header metodu ekleyerek izleme pikselini ve tıklama izlemeyi durdurabilirsiniz:

public function headers() {
            return [
                'X-No-Track' => Str::random(10),
            ];
        }
        


Antivirüs/Spam Filtreleri için Açık/Tıklama İzlemeyi Atlama

Bazı e-posta sunucuları, e-postaları teslim etmeden önce tarayabilir, bu da izleme pikselini veya tıklanan bağlantıları tetikleyebilir. Bunu yönetmek için ValidActionEvent içerisine bir olay dinleyicisi ekleyebilirsiniz:

class ValidUserListener {
            public function handle(ValidActionEvent $event) {
                if (in_array(request()->userAgent(), [
                    'Mozilla/5.0',
                    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246 Mozilla/5.0'
                ])) {
                    $event->skip = true;
                }
            }
        }
        


Olaylar

Bir e-posta gönderildiğinde, görüntülendiğinde veya bir bağlantı tıklandığında, izleme bilgileri ZanySoft\MailTracker\Model\SentEmail modeli kullanılarak veritabanında kaydedilir. Bu işlemler, e-posta topluca gönderildiğinde veritabanının aşırı yüklenmesini önlemek için sıralı işleri kullanır. İzleme olaylarını işleri ile yönetmek için mail-tracker.tracker-queue yapılandırma ayarını kullanabilirsiniz.

Bu olaylarda ek işleme yapmak isteyebilirsiniz. Olaylar aşağıdaki durumlarda tetiklenir:

  • ZanySoft\MailTracker\Events\EmailSentEvent
  • ZanySoft\MailTracker\Events\ViewEmailEvent
  • ZanySoft\MailTracker\Events\LinkClickedEvent


Olay Dinleyicilerine Veri Gönderme

Gönderilen bir e-postayı başka bir model ile ilişkilendirmek için çok sayıda senaryoda, e-postanın üst bilgisine bir header eklemek en iyi yoldur. İşte bir örnek:

public function handle(EmailSentEvent $event) {
            $tracker = $event->sent_email;
            $model_id = $tracker->getHeader('X-Model-ID');
            $model_name = $tracker->getHeader('X-Model');

            $model = app("App\\$model_name")->find($model_id);
            // Model üzerinde izleme/bağlantı görevlerinizi gerçekleştirin.
        }
        

Not etmelisiniz ki, e-postaya eklediğiniz üst bilgiler gönderilen mesajla birlikte gitmektedir, bu nedenle e-posta alıcılarınızın göreceği hiçbir veriyi saklamamalısınız.


İstisnalar

Aşağıdaki istisnalar atılabilir. Bunları istisna dinleyicinizde görmezden gelebilir veya istediğiniz gibi işleyebilirsiniz:

  • ZanySoft\MailTracker\Exceptions\BadUrlLink


Amazon SES Özellikleri

Amazon SES kullanıyorsanız, izleme bilgilerinize ek bilgi ekleyebilirsiniz. SES kontrol panelinde SES bildirimlerini ayarladıktan sonra, konuda gereken URL’yi kopyalayıp abone olabilirsiniz. İsteğe bağlı olarak birden fazla abonelik ile işlemlerinizi özelleştirebilirsiniz.


Görünümler

php artisan vendor:publish komutunu çalıştırdığınızda, özelleştirebileceğiniz basit görünümler resources/views/vendor/emailTrackingViews dizinine eklenir.


Yönetim Paneli

MailTracker, dahili bir yönetim alanı ile birlikte gelir. Varsayılan yapılandırma, can:see-sent-emails middleware’ine arka planda gizlenmiştir. Ön tanımınızı değiştirebilir veya kendi kurallarınızı kullanabilirsiniz. Varsayılan ön ek ve admin yollarını tamamen devre dışı bırakmayı da seçebilirsiniz.

Yönetim paneli yol adı ‘mailTracker_Index’dir ve standart yol /email-manager altında bulunur. Yönetim menünüze dahil etmek için yol adlarını kullanabilirsiniz. Tüm gönderilen e-postaların, toplam açılma sayısının ve URL tıklama sayısının görüntülendiği ve hızlıca analiz yapılabileceği bir panel sunar.


Lisans

MIT Lisansı (MIT). Daha fazla bilgi için Lisans Dosyasına bakın.

Kaynak: Orijinal Makale

Contents
  • NOT: Laravel 9.x sürümü kullanıyorsanız, 9.6.0 veya daha yüksek bir sürümde olmalısınız.
  • 1.0’dan Yükseltme
  • Kurulum
  • Kullanım
    • E-posta İçeriklerini Dosya Sisteminde Saklama
    • Modelleri Geçersiz Kılma
  • Belirli E-postalarda İzlemeyi Atlama
  • Antivirüs/Spam Filtreleri için Açık/Tıklama İzlemeyi Atlama
  • Olaylar
  • Olay Dinleyicilerine Veri Gönderme
  • İstisnalar
  • Amazon SES Özellikleri
  • Görünümler
  • Yönetim Paneli
  • Lisans
PHP Laravel için BPJS Paket Köprülemesi (VClaim, Aplicare, PCare, i-Care)
Laravel Başlangıç Kiti Neden Geliştirdim
%50 Büyüme Kodu: İlk UK Laravel Uygulamamın JDM Dağıtıcılarını Nasıl Dönüştürdüğü
Uzak VPS üzerinde Vite HMR Laravel çalıştıramayacağını düşündüm. Yanıldım.
Laravel’de Görüntü Yüklemelerini Temizleme: Resim Dosyaları Üzerinden PHP Yük Enjeksiyonunu Engelleme
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Acil: Yapay Zeka ile Hizmet Masası Saldırıları ve Koruma Yöntemleri
Sonraki Makale Çin’in ABD Su Arıtma Sistemini Hacklemesi Durumunda Ne Olur?

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Rapidus’un fabrika yol haritası: 2027’ye kadar 60 müşteri hedefi
Donanım
Meta’nın AI Gözlükleri Daha Az Tuhaf Görünmek İstiyor ama Stratejisi Farklı
Genel
Granblue Fantasy: Relink ile Fantastik Bir Deneyim Sizi Bekliyor
Oyun
Microsoft Xbox’ı Satarsa, Kim Alır?
Liste
Kaliforniya’da Ücretsiz Waymo Seyahatleri: Düzenleyici Bir Tesadüf mü?
Genel
Prime Intellect, Şirketler için AI Ajanları Geliştirmek İçin 130M Dolar Topladı
Yapay Zeka
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?