· Geliştirme · 4 min read
Geçici E-posta Adreslerini Nasıl Tespit Edersiniz: Kapsamlı Rehber
Uygulamanızda geçici e-posta adreslerini tespit etmek için en etkili yöntemleri ve teknikleri keşfedin, dolandırıcılığı önleyin ve veri kalitesini koruyun.
Geçici E-postaları Tespit Etmek Neden Önemlidir
Geçici e-posta adresleri platformunuzun veri kalitesini, güvenliğini ve karlılığını önemli ölçüde etkileyebilir. İster bir SaaS uygulaması, e-ticaret sitesi veya topluluk platformu geliştiriyor olun, uygun e-posta doğrulaması uygulamak şunlar için kritik öneme sahiptir:
- Dolandırıcılığı önleme - Kullanıcıların birden fazla sahte hesap oluşturmasını engelleme
- Veri kalitesini iyileştirme - Temiz, eyleme dönüştürülebilir kullanıcı veritabanları sürdürme
- Maliyetleri azaltma - Sahte veya geçici kullanıcılara kaynak israfını önleme
- Güvenliği artırma - Otomatik kötüye kullanım ve bot kayıtlarına karşı koruma
Geçici E-postaları Tespit Etme Yöntemleri
1. Domain Kara Liste Yaklaşımı
En yaygın yöntem, bilinen geçici e-posta domainlerinin bir veritabanını sürdürmeyi içerir.
Artıları:
- Hızlı ve verimli
- Düşük hesaplama yükü
- Bilinen domainler için yüksek doğruluk
Eksileri:
- Sürekli güncelleme gerektirir
- Her gün yeni geçici hizmetler ortaya çıkıyor
- Listeyi sürdürmek zaman alıcı
Uygulama Örneği:
const disposableDomains = [
'guerrillamail.com',
'mailinator.com',
'10minutemail.com',
// ... binlerce daha
];
function isDisposable(email) {
const domain = email.split('@')[1].toLowerCase();
return disposableDomains.includes(domain);
}2. Desen Tanıma
Bazı geçici e-posta hizmetleri, domain adlarında veya e-posta formatlarında öngörülebilir desenler izler.
Tespit edilecek yaygın desenler:
- Sayılarla domainler:
mail123.com,temp456.net - Genel anahtar kelimeler:
tempmail.,throwaway.,guerrilla - Kısa domainler:
a.comgibi tek harfli domainler - Yeni kayıtlı domainler
Uygulama Örneği:
function hasDisposablePattern(email) {
const domain = email.split('@')[1].toLowerCase();
const suspiciousPatterns = [
/temp.*mail/i,
/trash.*mail/i,
/throw.*away/i,
/\d{3,}/, // Birden fazla rakam
/^[a-z]\.com$/, // Tek harfli domainler
];
return suspiciousPatterns.some(pattern => pattern.test(domain));
}3. MX Kaydı Doğrulama
Domainin geçerli MX (Mail Exchange) kayıtlarının yapılandırılıp yapılandırılmadığını kontrol edin. Birçok geçici hizmetin olağandışı MX yapılandırmaları vardır.
Uygulama Örneği:
const dns = require('dns').promises;
async function verifyMXRecords(domain) {
try {
const addresses = await dns.resolveMx(domain);
// MX kayıtlarının var olup olmadığını kontrol et
if (!addresses || addresses.length === 0) {
return { valid: false, reason: 'MX kaydı yok' };
}
// Şüpheli MX desenlerini kontrol et
const suspiciousMX = addresses.some(mx =>
/mailinator|guerrilla|temp/i.test(mx.exchange)
);
return {
valid: !suspiciousMX,
reason: suspiciousMX ? 'Şüpheli MX kayıtları' : 'Geçerli'
};
} catch (error) {
return { valid: false, reason: 'DNS sorgusu başarısız' };
}
}4. API Tabanlı Tespit
Güncellenmiş bir veritabanını sürdüren ve birden fazla kontrol gerçekleştiren özel bir e-posta doğrulama API’si kullanın.
Faydaları:
- Her zaman güncel veritabanı
- Birden fazla tespit yöntemi birleştirilmiş
- Bakım yükü yok
- Hızlı yanıt süreleri (genellikle <100ms)
Uygulama Örneği:
async function verifyEmail(email) {
const response = await fetch(
`https://api.getemailverifier.com/v1/verify?email=${encodeURIComponent(email)}`,
{
headers: {
'Authorization': `Bearer ${YOUR_API_KEY}`
}
}
);
const data = await response.json();
return {
isDisposable: data.disposable,
isValid: data.valid,
riskScore: data.risk_score,
details: data.details
};
}Uygulama İçin En İyi Pratikler
1. Gerçek Zamanlı Doğrulama
E-postaları kayıt işlemi sırasında doğrulayın, sonrasında değil:
// Kullanıcı kaydı sırasında
app.post('/api/register', async (req, res) => {
const { email, password } = req.body;
// Önce e-postayı doğrula
const verification = await verifyEmail(email);
if (verification.isDisposable) {
return res.status(400).json({
error: 'Lütfen kalıcı bir e-posta adresi kullanın'
});
}
// Kayda devam et...
});2. Nazik Kullanıcı Deneyimi
Sadece kullanıcıları engellemekle kalmayın - yardımcı geri bildirim sağlayın:
function handleDisposableEmail(email) {
return {
success: false,
message: 'Geçici bir e-posta adresi kullandığınızı fark ettik. ' +
'Hesabınızı kurtarabilmeniz ve önemli güncellemeleri ' +
'alabilmeniz için lütfen kalıcı bir e-posta kullanın.',
suggestions: [
'Kişisel e-postanızı kullanın (Gmail, Outlook, vb.)',
'İş e-postanızı kullanın',
'Gizlilik konusunda endişeleriniz varsa destek ile iletişime geçin'
]
};
}Kaçınılması Gereken Yaygın Hatalar
1. Çok Agresif Engelleme
Şüpheli görünen her e-postayı engellemeyin. Bazı yasal domainler yanlış pozitifleri tetikleyebilir.
2. Kullanıcı Geri Bildirimini Göz Ardı Etme
E-postalarının yanlış işaretlendiğine inanan kullanıcıların itiraz etmesine izin verin.
3. Kötü Hata Mesajları
Genel “Geçersiz e-posta” hatalarıyla değil, net ve eyleme dönüştürülebilir hata mesajları sağlayın.
4. Tutarsız Doğrulama
Tüm giriş noktalarında (API, web formu, mobil uygulama) aynı kuralları uygulayın.
Sonuç
Geçici e-posta adreslerini tespit etmek, platform kalitesini ve güvenliğini sürdürmek için esastır. Kendi tespit sisteminizi oluşturabilirsiniz, ancak Email Verifier gibi özel bir API hizmeti kullanmak şunları sağlar:
- Her zaman güncel veritabanı 300.000+ geçici domain ile
- Birden fazla tespit yöntemi daha yüksek doğruluk için birleştirilmiş
- Hızlı yanıt süreleri 100ms’nin altında
- Bakım yükü yok - temel ürününüze odaklanın
Geçici e-posta tespitini uygulamaya hazır mısınız? API anahtarınızı alın ve dakikalar içinde platformunuzu korumaya başlayın.