Hosting E-posta SMTP Ayarları Nasıl Yapılır?

SMTP (Simple Mail Transfer Protocol), web sitenizin veya uygulamanızın bir e-posta sunucusuna kullanıcı adı ve parola ile kimlik doğrulayarak ileti göndermesini sağlayan protokoldür. İletişim formu bildirimleri, sipariş onayları, parola sıfırlama bağlantıları ve kayıt doğrulama e-postaları gibi işlem e-postalarının güvenilir şekilde ulaşması büyük ölçüde doğru SMTP ayarlarına bağlıdır. Hosting e-posta hesabı, ayrı bir işlem e-postası sağlayıcısı veya kurumsal e-posta hizmeti kullanılabilir; doğru sunucu ve bağlantı bilgileri seçtiğiniz hizmete göre değişir. Bu rehberde SMTP bilgilerini nerede bulacağınızı, port ve şifreleme seçimini, WordPress ve Laravel’de yapılandırmayı, SPF, DKIM ve DMARC kayıtlarını ve en sık karşılaşılan hata mesajlarını adım adım ele alıyoruz.
Neden PHP mail() yerine SMTP?
Pek çok PHP uygulaması ve WordPress varsayılan olarak e-postayı sunucunun yerel posta sistemi üzerinden, PHP’nin mail() fonksiyonuyla gönderir. Bu yöntemde ileti kimlik doğrulaması yapılmadan gönderilir ve alıcı sunucular bu e-postaları çoğu zaman şüpheli bulur. Sonuç olarak e-postalar spam klasörüne düşer veya hiç ulaşmaz.
SMTP ile gönderimde ise:
- İleti, gerçek bir e-posta hesabıyla kimlik doğrulanarak gönderilir.
- Gönderen adresi ile alan adı arasındaki tutarlılık sağlanır.
- DKIM imzası ve SPF doğrulaması daha tutarlı çalışır.
- Gönderim hataları uygulamaya açık bir hata mesajı olarak döner; sorunun nerede olduğunu anlamak kolaylaşır.
Bağlantı bilgilerini bulmak
cPanel kullanan hosting hesaplarında Email Accounts (E-posta Hesapları) bölümünden ilgili hesabın yanındaki Connect Devices (Cihazları Bağla) ekranını açın. Bu ekranda SMTP sunucu adı, port numarası, şifreleme yöntemi ve kullanıcı adı yer alır. SMTP sunucu adı, port, TLS/SSL yöntemi ve kullanıcı adını her zaman buradaki güncel bilgilerden alın; başka bir sağlayıcının veya eski bir rehberin değerlerini kopyalamayın.
Ekranda genellikle iki tür ayar görürsünüz:
- Güvenli SSL/TLS ayarları (önerilen): Sunucu adı olarak çoğu zaman hosting sunucusunun kendi alan adı gösterilir. Bu ad, sunucunun SSL sertifikasıyla eşleştiği için sertifika hatası yaşanmaz.
- SSL olmayan ayarlar:
mail.alanadiniz.comgibi bir sunucu adıyla şifresiz bağlantı. Canlı uygulamalarda kullanılmamalıdır.
Kullanıcı adı genellikle e-posta adresinin tamamıdır (bildirim@alanadiniz.com). Uygulama için ayrı bir e-posta hesabı açmak; kişisel hesabınızın parolasını uygulama yapılandırmasında tutmaktan ve gönderim sorunlarının kişisel posta kutunuzu etkilemesinden daha güvenlidir.
Port ve şifreleme seçimi
SMTP ayarlarındaki en sık hata, port numarası ile şifreleme yönteminin uyumsuz seçilmesidir.

- Port 465 – SSL/TLS (implicit TLS): Bağlantı en baştan şifreli kurulur. Uygulama ayarlarında şifreleme “SSL” veya “SMTPS” olarak seçilir.
- Port 587 – STARTTLS: Bağlantı önce şifresiz açılır, ardından STARTTLS komutuyla şifreli kanala geçilir. Uygulama ayarlarında şifreleme “TLS” olarak seçilir.
- Port 25: Sunucular arası posta aktarımı için kullanılır. Birçok hosting ve bulut sağlayıcısı, spam önlemi olarak dışarıya doğru 25 portunu engeller. Uygulama gönderimi için kullanmayın.
465 portunu “TLS” ile veya 587 portunu “SSL” ile eşleştirmek, bağlantının zaman aşımına uğramasına veya anlaşılmaz protokol hatalarına yol açar. Sertifika hatasını doğrulamayı kapatarak geçmeyin; bu, bağlantıyı araya girme saldırılarına açık bırakır. Sertifika hatası alıyorsanız sunucu adını, sertifikanın kapsadığı adla değiştirin.
WordPress’te SMTP yapılandırması
WordPress, e-postaları wp_mail() fonksiyonu ile gönderir ve bu fonksiyon varsayılan olarak PHP’nin yerel posta sistemini kullanır. SMTP kullanmak için iki yöntem vardır:
1. SMTP eklentisi
WP Mail SMTP veya benzeri bir eklenti, SMTP bilgilerini bir ayar ekranından girmenizi ve test e-postası göndermenizi sağlar. Eklenti seçerken parolayı veritabanında düz metin olarak saklamak yerine wp-config.php içinde sabit olarak tanımlamaya izin veren seçenekleri tercih edin.
2. Kod ile yapılandırma
Eklenti kullanmak istemiyorsanız bir site eklentisine veya child theme’in functions.php dosyasına PHPMailer ayarlarını ekleyebilirsiniz. Parolayı kodun içine değil, wp-config.php dosyasında tanımlanan bir sabite yazın:
// wp-config.php
define( 'BM_SMTP_USER', 'bildirim@alanadiniz.com' );
define( 'BM_SMTP_PASS', 'uygulama-parolasi' );
// site eklentisi
add_action( 'phpmailer_init', function ( $mail ) {
$mail->isSMTP();
$mail->Host = 'sunucu.hostingfirmasi.com'; // Connect Devices ekranındaki ad
$mail->Port = 465;
$mail->SMTPSecure = 'ssl';
$mail->SMTPAuth = true;
$mail->Username = BM_SMTP_USER;
$mail->Password = BM_SMTP_PASS;
$mail->From = BM_SMTP_USER;
$mail->FromName = 'Bilim Meraklısı';
} ); Bu yapılandırmadan sonra iletişim formu, yeni kullanıcı bildirimi ve parola sıfırlama gibi tüm WordPress e-postaları SMTP üzerinden gider. İletişim formu eklentileri genellikle kendi ayar ekranında “Kimden” adresini ayrıca tanımlar; bu adresin SMTP hesabıyla aynı alan adında olduğundan emin olun. WordPress’e özgü sorunlar için WordPress mail gönderme sorunu rehberimize göz atabilirsiniz.
Laravel ve PHP uygulamalarında SMTP
Laravel’de SMTP ayarları .env dosyasında tanımlanır ve config/mail.php tarafından okunur:
MAIL_MAILER=smtp
MAIL_HOST=sunucu.hostingfirmasi.com
MAIL_PORT=587
MAIL_USERNAME=bildirim@alanadiniz.com
MAIL_PASSWORD=uygulama-parolasi
MAIL_FROM_ADDRESS=bildirim@alanadiniz.com
MAIL_FROM_NAME="${APP_NAME}" Kullandığınız Laravel sürümüne göre şifreleme ayarının adı ve davranışı değişebilir; 587 portunda STARTTLS, 465 portunda doğrudan TLS kullanılacağını sürümünüzün belgesinden doğrulayın. .env dosyasını değiştirdikten sonra yapılandırma önbelleği kullanıyorsanız php artisan config:clear veya config:cache komutunu çalıştırmayı unutmayın; aksi halde uygulama eski ayarlarla göndermeye devam eder. Ayrıntılı örnekler için Laravel Mail SMTP rehberimize bakabilirsiniz.
Uygulama parolasını kod deposuna yazmayın; ortam değişkeni veya güvenli yapılandırma alanı kullanın. E-posta gönderimini kullanıcı isteğinin içinde yapmak yerine kuyruğa almak, SMTP sunucusu yavaş yanıt verdiğinde sayfanın beklemesini önler.
Teslim edilebilirlik: SPF, DKIM ve DMARC
Sunucu “mesajı kabul etti” yanıtı verse bile ileti alıcının gelen kutusuna düşmeyebilir. Alıcı sunucular, e-postanın gerçekten sizin alan adınız adına gönderilip gönderilmediğini üç DNS kaydıyla doğrular:
- SPF: Alan adınız adına hangi sunucuların e-posta gönderebileceğini listeleyen TXT kaydıdır. Bir alan adında yalnızca tek bir SPF kaydı olmalıdır; birden fazla hizmet kullanıyorsanız hepsini aynı kayıtta birleştirin.
- DKIM: Giden e-postalara eklenen dijital imzadır. Alıcı sunucu, DNS’teki ortak anahtar ile imzayı doğrular ve iletinin yolda değiştirilmediğini anlar.
- DMARC: SPF ve DKIM doğrulaması başarısız olduğunda alıcı sunucunun ne yapacağını (izle, karantinaya al, reddet) belirten ve size rapor gönderilmesini sağlayan politikadır.
cPanel’de Email Deliverability (E-posta Teslim Edilebilirliği) ekranı, alan adınızın SPF ve DKIM kayıtlarının doğru olup olmadığını gösterir ve eksikse önerilen kaydı verir. Alan adınızın DNS’i hosting dışında (ör. Cloudflare) yönetiliyorsa önerilen kayıtları o panele elle eklemeniz gerekir. DMARC’a ilk aşamada p=none ile başlayıp raporları inceledikten sonra daha sıkı bir politikaya geçmek güvenli bir yaklaşımdır.
Gönderen adresinin doğrulanmış alan adıyla uyumlu olduğundan emin olun. Örneğin alanadiniz.com hesabıyla kimlik doğrulayıp “Kimden” alanına bir Gmail adresi yazmak, DMARC kontrollerinde başarısızlığa ve e-postanın reddedilmesine yol açar. Ziyaretçinin adresini yanıtlamak istiyorsanız onu “Kimden” yerine Reply-To başlığına yazın.

Bağlantıyı test etmek
Teslim sorunlarını ayırmak için önce SMTP bağlantısını ve kimlik doğrulamayı test edin. Uygulama üzerinden test e-postası göndermek kolaydır; ancak hata mesajı yetersizse komut satırından bağlantıyı doğrudan denemek sorunun yerini netleştirir:
# 465 portu (implicit TLS)
openssl s_client -connect sunucu.hostingfirmasi.com:465 -crlf -quiet
# 587 portu (STARTTLS)
openssl s_client -connect sunucu.hostingfirmasi.com:587 -starttls smtp -crlf -quiet Bağlantı kurulup sunucunun 220 ile başlayan karşılama satırı görülüyorsa ağ ve şifreleme tarafı çalışıyordur. Bağlantı hiç kurulamıyorsa sunucunuzdan dışarıya bu porta erişim engellenmiş olabilir; bu durumda hosting desteğine danışın. Gönderilen test e-postasının başlıklarında (Gmail’de “Orijinali göster”) SPF, DKIM ve DMARC sonuçlarının “PASS” olduğunu kontrol edin.
Sık karşılaşılan hata mesajları
- 535 Authentication failed: Kullanıcı adı veya parola hatalı. Kullanıcı adının e-posta adresinin tamamı olduğundan ve parolada özel karakterlerin yapılandırma dosyasında doğru kaçışlandığından emin olun.
- Connection timed out / Connection refused: Port engellenmiş veya yanlış port-şifreleme eşleşmesi seçilmiş. 465 ve 587’yi doğru şifreleme ile ayrı ayrı deneyin.
- Certificate verify failed / name mismatch: Sunucu adı sertifikayla eşleşmiyor. Connect Devices ekranındaki güvenli sunucu adını kullanın.
- 550 Sender address rejected: “Kimden” adresi, kimlik doğrulanan hesapla uyumsuz ya da gönderim yetkisi yok.
- Relay access denied: Kimlik doğrulaması yapılmadan başka bir alan adına gönderilmeye çalışılıyor; SMTPAuth ayarının açık olduğunu kontrol edin.
- Gönderim limiti aşıldı: Paylaşımlı hosting hesaplarında saatlik gönderim sınırı vardır. Bülten gibi toplu gönderimler için işlem e-postası sağlayıcısı veya ayrı bir e-posta pazarlama hizmeti kullanın.
Hosting SMTP mi, işlem e-postası sağlayıcısı mı?
Küçük bir blogun iletişim formu ve yorum bildirimleri için hosting e-posta hesabı genellikle yeterlidir. Buna karşılık e-ticaret sitesi, üyelik sistemi veya günde yüzlerce e-posta gönderen uygulamalar için işlem e-postası (transactional email) sağlayıcıları daha uygundur. Bu hizmetler yüksek gönderim kapasitesi, ayrıntılı teslim raporları, geri dönen e-posta (bounce) yönetimi ve daha iyi itibar yönetimi sunar. Sağlayıcı değiştirdiğinizde SPF kaydını güncellemeyi ve yeni DKIM kaydını eklemeyi unutmayın.
Gerçekçi bir teşhis örneği
Bir WordPress sitesinde iletişim formu “mesajınız gönderildi” diyor, ancak site sahibine hiçbir e-posta ulaşmıyor. Rastgele eklenti değiştirmek yerine adım adım ilerleyelim:
- Gönderim yöntemi: Sitede SMTP yapılandırması yok; WordPress PHP
mail()ile gönderiyor. İlk adım olarak SMTP eklentisi kurulup hosting e-posta hesabı bilgileri giriliyor. - Bağlantı testi: Eklentinin test e-postası 587 portunda “connection timed out” hatası veriyor. Connect Devices ekranı kontrol edildiğinde hosting firmasının 465 portunu ve SSL’i önerdiği görülüyor. Ayar düzeltilince test e-postası gönderiliyor.
- Teslim kontrolü: Test e-postası Gmail’de spam klasörüne düşüyor. “Orijinali göster” ekranında SPF sonucunun “softfail” olduğu görülüyor; çünkü alan adının DNS’i Cloudflare’de ve SPF kaydı eski hostingin IP’sini içeriyor.
- DNS düzeltmesi: cPanel Email Deliverability ekranındaki önerilen SPF ve DKIM kayıtları Cloudflare’e ekleniyor. Birkaç saat sonra yeni test e-postası gelen kutusuna düşüyor ve SPF, DKIM, DMARC sonuçları “PASS” görünüyor.
- Form ayarı: İletişim formunun “Kimden” alanında ziyaretçinin e-posta adresi kullanıldığı fark ediliyor. Bu alan site adresiyle değiştirilip ziyaretçi adresi “Yanıtla” alanına taşınıyor; böylece DMARC uyumsuzluğu da önleniyor.
Bu örnekte sorun tek bir ayardan değil, üç farklı katmandan (port, DNS kaydı ve form yapılandırması) kaynaklanıyordu. Her katmanı ayrı test etmek, sorunu kalıcı olarak çözmenin en hızlı yoludur.
Gönderim kayıtları ve izleme
E-posta sorunları çoğu zaman kullanıcı şikâyetiyle fark edilir: “Parola sıfırlama e-postası gelmedi”, “Sipariş onayı almadım”. Bu şikâyetleri hızlı yanıtlamak için gönderim kayıtlarına ihtiyacınız vardır.
- Uygulama tarafı: Laravel’de gönderilen her e-postayı log’a yazan bir dinleyici veya WordPress’te e-posta kayıt eklentisi, hangi e-postanın ne zaman kime gönderilmeye çalışıldığını gösterir.
- Sunucu tarafı: cPanel’deki Track Delivery (Teslimatı İzle) aracı, hosting hesabından giden e-postaların alıcı sunucu tarafından kabul edilip edilmediğini veya neden reddedildiğini gösterir.
- Sağlayıcı tarafı: İşlem e-postası sağlayıcıları teslim, açılma, geri dönme ve spam şikâyeti istatistiklerini panelde sunar.
Geri dönen (bounce) e-postaları düzenli kontrol edin. Sürekli geçersiz adreslere e-posta göndermek, gönderici itibarını düşürür ve geçerli adreslere gönderilen e-postaların da spam klasörüne düşmesine yol açabilir. Kayıt formlarında e-posta doğrulaması kullanmak, geçersiz adreslerin listeye girmesini en baştan önler.
Sıkça Sorulan Sorular
587 mi, 465 mi kullanmalıyım?
İkisi de güvenlidir. Hosting firmanızın Connect Devices ekranında önerdiği portu kullanın. 465 portu bağlantıyı en baştan şifreler, 587 ise STARTTLS ile şifreli kanala geçer. Önemli olan, port ile şifreleme ayarını doğru eşleştirmektir.
E-postalar gidiyor ama spam klasörüne düşüyor, neden?
En sık nedenler eksik veya hatalı SPF/DKIM kayıtları, DMARC politikasıyla uyumsuz “Kimden” adresi ve sunucu IP’sinin itibarıdır. Test e-postasının başlıklarındaki doğrulama sonuçlarını kontrol ederek başlayın.
Gmail hesabımı SMTP olarak kullanabilir miyim?
Teknik olarak mümkündür; ancak alan adınızla gönderilen işlem e-postaları için önerilmez. Kişisel hesabın gönderim sınırları düşüktür ve “Kimden” adresi alan adınızla uyumlu olmadığı için teslim edilebilirlik sorunları yaşanabilir.
SMTP parolasını değiştirdim, site e-posta göndermiyor. Ne yapmalıyım?
Yeni parolayı uygulamanın yapılandırmasına (eklenti ayarı, wp-config.php veya .env) girin ve yapılandırma önbelleği kullanıyorsanız temizleyin. Parola değişikliklerinde uygulama tarafının da güncellenmesi gerektiğini bir kontrol listesine eklemek, aynı sorunun tekrar yaşanmasını önler.
SPF kaydına birden fazla hizmet nasıl eklenir?
Tek bir SPF kaydı içinde her hizmetin include: ifadesini art arda yazın ve kaydı tek bir ~all veya -all ile bitirin. Aynı alan adında iki ayrı SPF kaydı oluşturmak, doğrulamanın tamamen başarısız olmasına yol açar.
İlgili Rehberler
- WordPress Mail Gönderme Sorunu Nasıl Çözülür?
- Laravel Mail SMTP Ayarları Nasıl Yapılır?
- WooCommerce Sipariş E-postası Gitmiyor
- DNS Yönlendirme Nedir, Domain Nasıl Bağlanır?




