Ubuntu işletim sistemli bilgisayarımı kullanırken, bir mail gönderme işlemi gerçekleştirdiğimde “My unqualified host name (unknown); sleeping for retry” şeklinde bir hata alıyorum. Bu hata mesajını ne yapmalıyım ve nasıl çözebilirim? Hangi adımları izlemeliyim? Bu konuda bildiklerinizi paylaşmanızı rica ediyorum.
WordPress sitelerimdeki mail gönderilememesi sorununu kontrol ettiğimde sendmail de şöyle bir hatanın olduğunu gördüm: My unqualified host name (*) unknown; sleeping for retry. Yıldız işaretli yer hostname adıdır, ben geneli ifade etmesi için * şeklinde değiştirdim. Bu hatanın çözümü aslında çok basit. Ama öncesinde hatayı analiz edip anlamamız, edineceğimiz alışkanlıklar için iyi olacaktır.
Öncelikle sizde sendmail de hata olup olmadığını görmek için aşağıdaki komutu çalıştırarak çıktıyı kontrol edebilirsiniz:
sudo systemctl status sendmail
Komutun çıktısı bende aşağıdaki gibi görünüyor, kırmızı bölümler hatayı nitelemekte:
root@SUNUCU-ADI:/home/rooooot# sudo systemctl status sendmail
● sendmail.service - LSB: powerful, efficient, and scalable Mail Transport Agent
Loaded: loaded (/etc/init.d/sendmail; generated)
Active: active (running) since Sun 2023-02-19 12:22:06 UTC; 37s ago
Docs: man:systemd-sysv-generator(8)
Process: 265006 ExecStart=/etc/init.d/sendmail start (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 11770)
Memory: 20005.5M
CPU: 600ms
CGroup: /system.slice/sendmail.service
└─265067 "sendmail: MTA: accepting connections" "" "" "" "" "" "" "" "" "" ""
Feb 19 12:21:04 SUNUCU-ADI su[2465069]: (to smmsp) roooot on none
Feb 19 12:21:04 SUNUCU-ADI su[26539]: pam_unix(su:session): session opened for user smmsp(uid=104) by (uid=0)
Feb 19 12:21:04 SUNUCU-ADI su[24239]: pam_unix(su:session): session closed for user smmsp
Feb 19 12:21:04 SUNUCU-ADI sm-mta[215052]: My unqualified host name (SUNUCU-ADI) unknown; sleeping for retry
Feb 19 12:21:06 SUNUCU-ADI sm-msp-queue[275058]: My unqualified host name (SUNUCU-ADI) unknown; sleeping for retry
Feb 19 12:22:04 SUNUCU-ADI sm-mta[245652]: unable to qualify my own domain name (SUNUCU-ADI) -- using short name
Feb 19 12:22:04 SUNUCU-ADI sm-mta[255667]: starting daemon (8.12.1): SMTP+queueing@00:0:00
Feb 19 12:22:06 SUNUCU-ADI sm-msp-queue[2155157]: unable to qualify my own domain name (SUNUCU-ADI) -- using short name
Feb 19 12:22:06 SUNUCU-ADI sendmail[2455006]: ...done.
Feb 19 12:22:06 SUNUCU-ADI systemd[1]: Started LSB: powerful, efficient, and scalable Mail Transport Agent.
Hata: My unqualified host name (*) unknown; sleeping for retry
Bu şu anlama geliyor: Bu, Sendmail’in tam etki alanı adınızı çözemiyor
Şimdi bizim hostname adımızı sendmail neden çözemiyor ona bakalım. Büyük ihtimal /etc/hosts dosyasındaki FQDN tanımlamasının eksik yada dogru olmamasından kaynaklanıyordur.
FQDN Nedir? FQDN: Fully Qualified Domain Name, Türkçe anlamı: Tam Nitelikli Alan Adı Alan adi sistemlerinde bir ismin tamamını belirtmek için kullanılan isme FQDN denir. Örnek vermek gerekirse elimizde söyle bir domain olsun test.sorucevap.com: Burada
test: Alt alan adı
sorucevap.com: Alan adı (domain)
test.sorucevap.com: FQDN adı
Öncelikle hostname ismimizi aşağıdaki komutu çalıştırarak öğrenelim:
sudo hostname
Örnek çıktı bu şekilde olacaktır:
SUNUCU-ADI
Sunucu adı bir sonraki adımda bize gerekli olacak, onu bir yere not edelim ve /etc/hosts dosyasını ssh terminalindeyken açalım:
sudo nano /etc/hosts
İçeriği örnek bu şekilde olacaktır:
127.0.0.1 localhost
127.0.1.1 SUNUCU-ADI
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Yukarıdaki kod da ilk satırdaki bölüm yüzünden bu hatayı alıyoruz (niteliksiz ana bilgisayar adı). Burda belirtilen localhost sunucumuzun FQDN adresini tam olarak göstermiyor. Bu yüzden localhost kısmını aşağıdaki gibi değiştiriyoruz:
127.0.0.1 localhost.localdomain localhost SUNUCU-ADI
Sonrasında örnek aşağıdaki gibi görünmeli:
127.0.0.1 localhost.localdomain localhost SUNUCU-ADI
127.0.1.1 SUNUCU-ADI
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Değişikliği yaptıktan sonra kaydetip çıkalım, CTRL+x, y+enter ve sonrasında sendmail e restart atalım:
sudo systemctl restart sendmail
Normalde konudaki hatayı aldıysanız ve söylediğim değişiklikleri uyguladıysanız, bu aşamada sendmail ‘in mail gönderme sorununu çözmüş olmanız gerekiyor. İsterseniz basit bir komut ile sendmail ‘in başarılı şekilde mail gönderip göndermediğini kontrol edebilirsiniz. Aşağıdaki komutu ssh terminalinden çalıştırın ancak mail kısmını düzenleyin:
sudo echo "Subject: sorucevap.com dan mail var" | sendmail -v [email protected]
Komut çalıştıktan sonra çıktı size çalışıp çalışmadığını gösterecektir. Yine de test ettiğiniz maile bakıp “sorucevap.com dan mail var” başlıklı bir test mailinin gelip gelmediğini kontrol edebilirsiniz. Mail geldiyse artık her şey çalışıyor demektir. Bu yöntem ile kendi sorunumu çözdüm (wordpress sitemdeki) arkadaşlar, umarım açıklayıcı olmuştur.