Ubuntu'da "My unqualified host name (unknown); sleeping for retry" Mail gönderme sorunu nasıl çözülür?

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.

1 Beğeni

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 TEST_EDILECEK_MAIL@gmail.com

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.