Son zamanlarda WordPress‘in veya eklentilerin yaptığı güncellemeler sonucunda oluşan uyumsuzluklar bir çok hatayı kullanıcıların karşısına çıkardı. Kimileri hatalarına çare bulurken, kimileri de çözüm bulabilmek için internetin altını üstüne getiriyor. Bu hatalardan biri de: Contact Form 7 hatası. Bu hatayı nasıl kesin çözüme kavuştururuz görelim.
“Mesajınız gönderilirken bir hata oluştu. Lütfen daha sonra tekrar deneyin.”
Contact Form 7 eklentisi, WordPress altyapısını kullananların vazgeçilmezlerinden biridir. İletişim formları oluşturmak için kullanıcılara gerek arayüzü ile gerek kullanımı ile çok kolaylık sağlar ve bu nedenle en çok tercih edilen eklentiler arasındadır. Aslında Contact Form 7‘nin “Mesajınız Gönderilemedi” hatasını almaya alışmıştık ve bu hatayı bir eklenti ile SMTP ayarlarını yaparak çözmeyi de alışılmış bir hale getirmiştik. Fakat son zamanla da bu hatayı alanlar, sorunu WP Mail SMTP eklentisi ile de çözemediğini fark etti ve yana döne çözüm yolları aramaya başladı.
Şimdi aşağıdaki yöntemleri, sorununuz çözülene kadar sırası ile uygulayınız;
1. Yeni WP Mail SMTP Eklentisi Kurulumu ve Ayarları
2. Mail.php Dosyası Düzenleme
3. PhpMailer.php Dosyasını Düzenleme ve Güncelleme
Yeni WP Mail SMTP Eklentisi Kurulum ve Ayaları
# Admin Paneli » Eklentiler » Yeni Ekle kısmından WP Mail SMTP veya WP Mail SMTP by WPForms adı ile aratabilirsiniz. Karşınıza çıkan ilk eklentiyi yükleyip, etkinleştirin.
# Eklentiyi etkinleştirdikten sonra Admin Paneli » Ayarlar » WP Mail SMTP yolu ile düzenleme paneline gidin ve tüm ayarları aşağıdakiler gibi düzenleyin.
From Email: Kullanacağınız e-posta adresini yazın.
From Name: Adınızı veya sayfa adınızı yazabilirsiniz.
Mailer: Burada Other SMTP seçeneğini aktif ediyoruz.
Return Path: Bu seçenek, ulaşmayan ve geri dönen mailler vb. size bildirilsin mi diye soruyor, boş geçebilir veya bildirilmesini istiyorsanız işaretleyebilirsiniz.
SMTP Host: Buraya SMTP sunucunuzu yazacaksınız. Bu genelde mail.siteadınız.com olur fakat siz yinede sunucu panelinizden, e-posta ayarlarına girerek sunucu adınıza bakabilir veya hosting şirketinizden isteyebilirsiniz.
SMTP Port: 587 değerini girin.
Encryption: SSL seçeneğini seçebilirsiniz.
Authentication: Bu seçeneği ON yaparak aktif edin.
SMTP Username: Mail adresiniz.
SMTP Password: Şifreniz.
# Tüm ayarları kaydettikten sonra, aynı panel içerisinde, üstte menüde bulunan bulunan Email Test sekmesinden, kendinize deneme maili atabilirsiniz. Eğer deneme mailiniz hata vermez ve iletilir ise, hatanız düzeldi demektir. Contact Form’u gönül rahatlığıyla kullanabilirsiniz. Fakat test mail attığınızda da hata alıyorsanız, önce; girdiğiniz bilgilerin doğlu olup olmadığını tekrar kontrol edin ve herhangi bir hata yok ise diğer çözüm yöntemine geçin.
Mail.php Dosyası Düzenleme
WP Mail SMTP eklentisi ayarlarını yaptığınız halde hala mesajınız gönderilemedi hatası alıyorsanız, Contact Form 7 eklentisinin içerisinde bulunan Mail.php dosyasında yapacağımız bir değişiklik ile aldığımız hatayı onarabiliriz.
# İlk olarak herhangi bir FTP programı ile sitenizin sistem dosyalarına giriş yapın. Daha sonra; public_html » wp-content » plugins » contact-form-7 » includes » mail.php dosyasını indirip veya ftp üzerinde düzenlemek için açın. (Not: Bu yol kimi sunucularda domains » siteadınız.com » public_html ile başlayabilir.)
# Mail.php dosyasını açtığınızda, alttaki kodu bulun;
$headers = “From: $sender\n”;
# Bulduğunuz kodu, vereceğim kod ile değiştirin;
$headers = “From $sender\n”;
PhpMailer.php Dosyasını Düzenleme ve Güncelleme
Aldığınız hata hala düzelmedi ise, sıra hatanın ana kaynağına geldi. Bu hata son zamanlarda WordPress’i kurduğumuz zamanki PHP sürümü ile, hosting firmamızın PHP sürümünün uymamasından da kaynaklanabiliyor. Hosting firmalarımız PHP sürümlerini aktif olarak güncelledikleri için, bizim sürümümüz geri kalarak bu tarz hatalara neden olabilir. Şimdi yapacağımız değişiklik ile bu uyum sorununu düzelteceğiz ve aynı zamanda Contact Form 7 hatamızda düzelecek.
# Yine FTP üzerinden public_html » wp-includes » class-phpmailer.php dosyasını açıp, bu kodu buluyoruz;
public $SMTPOptions = array();
# Bulduğumuz satırı, aşağıdaki kod ile değiştiriyoruz;
public $SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
Bu işlemi gerçekleştirdikten sonra, iletişim formu ile gönderilen mailleriniz başarıyla iletilecektir. Bu çözümlemeler haricinde oluşan; güncellemelerden veya eklentilerden kaynaklı hatalar alırsak, ayrıca bunları farklı bir başlık altında çözümleyeceğim.