WordPress’ten E-posta Gitmiyor: SMTP ile Kalıcı Çözüm
- Yayınlandı:
- Son teknik kontrol:
Hosting, Yedekleme ve Bakım
Kısa cevap
WordPress e-postaları varsayılan olarak sunucudaki PHP mail() işleviyle, kimlik doğrulaması olmadan gönderir. Sunucu bu işlevi kapatmışsa e-posta hiç gitmez; açık olsa bile kimlik doğrulaması olmayan iletiler sıkça spam’e düşer veya reddedilir. Kalıcı çözüm, WordPress’in e-postalarını alan adınıza ait bir SMTP hesabı üzerinden göndermektir: bir SMTP eklentisiyle (ör. WP Mail SMTP) veya kodla. Ardından alan adının SPF/DKIM kayıtları kontrol edilir ve gerçek akışlarla test yapılır.
Önemli noktalar
- wp_mail() varsayılan olarak PHP mail() kullanır; kimlik doğrulaması yoktur.
- SMTP, gönderimi gerçek bir e-posta hesabıyla ve kimlik doğrulamalı yapar.
- Gönderen adresi SMTP hesabıyla aynı alan adında olmalıdır.
- SMTP parolası mümkünse veritabanında değil wp-config.php’de sabit olarak tutulur.
- Kurulumdan sonra form, şifre sıfırlama ve (varsa) sipariş e-postasıyla gerçek test yapılmalıdır.
Önce hangi e-postanın gitmediğini ayırın
| Durum | Olası neden | Nereye bakılır |
|---|---|---|
| Hiçbir e-posta gitmiyor | mail() kapalı veya sunucuda gönderici yok | Could not instantiate mail function |
| E-postalar spam’e düşüyor | Kimlik doğrulaması yok, SPF/DKIM eksik | SMTP + DNS kayıtları |
| Yalnızca bir formun e-postası gelmiyor | Form eklentisinin alıcı veya gönderen ayarı | Formun bildirim ayarları |
| Yalnızca WooCommerce e-postaları | Sipariş durumu veya zamanlanmış görevler | WooCommerce e-posta gitmiyor |
SMTP eklentisiyle kurulum
SMTP bilgilerini hazırlayın
Alan adınıza ait bir e-posta hesabının SMTP sunucusu, portu (genellikle 465 SSL veya 587 STARTTLS), kullanıcı adı ve parolası. Hosting firmanızın e-posta ayarları sayfasında yazar.
Eklentiyi kurun
WordPress.org’daki bir SMTP eklentisi (ör. WP Mail SMTP; kendi tanımına göre genel SMTP’nin yanında Gmail, Outlook, SendGrid, Mailgun, SES ve Zoho bağlantılarını destekler) kurup etkinleştirin.
Gönderen bilgilerini girin
Gönderen e-postası SMTP hesabıyla aynı alan adında olmalı; “gönderen adresini zorla” benzeri seçenek varsa açın ki eklentiler farklı adres kullanamasın.
SMTP ayarlarını girin
Sunucu, port, şifreleme türü ve kimlik bilgileri. Parolayı eklentinin desteklediği şekilde wp-config.php’de sabit olarak tanımlamak, veritabanında düz metin saklamaktan güvenlidir.
Test edin
Eklentinin test e-postasıyla başlayın; sonra iletişim formunu, şifre sıfırlamayı ve varsa bir test siparişini gerçek akışla deneyin. Spam klasörünü de kontrol edin.
Eklentisiz: kodla SMTP
Tek bir ayar için eklenti kurmak istemiyorsanız phpmailer_init kancasıyla PHPMailer’ı SMTP kullanacak şekilde yapılandırabilirsiniz. Kod küçük bir özel eklentiye (veya alt temanın functions.php dosyasına) eklenir; kimlik bilgileri wp-config.php’de tutulur:
<?php
// wp-config.php: define( 'SMTP_HOST', 'mail.alanadiniz.com' ); vb.
add_action( 'phpmailer_init', function ( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = SMTP_HOST;
$phpmailer->Port = 587;
$phpmailer->SMTPSecure = 'tls';
$phpmailer->SMTPAuth = true;
$phpmailer->Username = SMTP_USER;
$phpmailer->Password = SMTP_PASS;
$phpmailer->From = SMTP_USER;
} );
Sık sorulan sorular
Gmail hesabımla SMTP kullanabilir miyim?
Şifre sıfırlama e-postası gelmiyor, panele nasıl girerim?
Test e-postası geldi ama form e-postaları gelmiyor.
Kaynaklar ve teknik referanslar
Bu içeriği hazırlayan
WPHizmet EkibiWordPress teknik ekibi
WPHizmet içeriklerini hazırlayan teknik ekip. Rehberler, WordPress ve WooCommerce sitelerinde günlük olarak karşılaşılan sorunlara dayanır; sürüm, yapılandırma ve gereksinim bilgileri yayın öncesinde resmi dokümantasyondan doğrulanır.
- WordPress teknik destek
- Performans ve Core Web Vitals
- Güvenlik ve zararlı kod temizliği
- WooCommerce
- Teknik SEO