Postfix: Alıcı adresi reddedildi: Kullanıcı yerel alıcı tablosunda bilinmiyor


30

Postfix sunucumda aynı etki alanındaki bir adrese bir e-posta göndermeye çalıştığımda (örneğin, sunucu ana bilgisayar adı mail.example.com ise ve test@example.com adresine bir e-posta göndermeye çalışırsam), Günlükte aşağıdaki hatayı ve e-posta teslim edilmez: Recipient address rejected: User unknown in local recipient table . Başka bir alandaki bir adrese gönderirsem, herhangi bir sorun yaşamadım. İşte /etc/postfix/main.cf dosyam:

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = mail.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
#myorigin = /etc/mailname
myorigin = $mydomain
mydestination = $mydomain, localhost.$mydomain, localhost
relayhost =
#fake IP address
mynetworks = 127.0.0.0/8 100.837.191.223
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

Sunucuların, herhangi bir nedenden ötürü ayarlanan doğru ana bilgisayar adlarına sahip olmadığı durumlarda bunu daha önce yaptım. Etki alanı kurulumunuz mail.example.comMX kaydı olarak mı yapılıyor? Bu sunucu gerçekten mail.example.commi?
Bert

Yanıtlar:


42

Bu sorunun biraz eski olduğunu biliyorum, bu yüzden zaten tatmin edici bir şekilde cevaplandırıldığını varsayıyorum.

Ben de aynı sorunu yaşadım ve neler olduğunu anlamak biraz zaman aldı. Durumumun asıl soru ile aynı olduğunu düşünüyorum.

Postfix, tüm postaları İnternet'teki diğer sunuculara iletmelidir , gerçekte herhangi bir etki alanı için posta almaz. Bu nedenle example.com adresine gönderilen postaların example.com için posta sunucusuna iletilmesi gerekir. B techieb0y tarafından açıklandığı gibi, $ mydomain komutunu satırdan çıkarmaktır:

mydestination = $mydomain, localhost.$mydomain, localhost

Bu satır postfix'e $ mydomain alanına gönderilen mesajların bu sunucuda alınıp depolanacağını söyler . İstediğim bu değil, bu mesajların example.com için asıl posta sunucusuna gönderilmesini istiyorum. Bunu fark ettiğimde ve example.com'u kaldırdığımda, posta beklediğim gibi çalıştı. Bunu, bu açıklamanın gelecekte bu soruya tökezleyen bir başkasına yardım etmesi ihtimaline karşı gönderiyorum.


18

Hata oldukça açıklayıcıdır: Hedef e-posta kullanıcı adı (@ işaretinin solunda) sistemdeki yerel bir kullanıcıyla (varsayılan postfix ayarları) veya sanal bir etki alanıyla (hiçbiri yapılandırılmadığı şekilde) eşlenemez Kutu). Bu haritalamayı denemeye ve gerçekleştirmeye karar verme, 'karar verme' alanındaki (ve herhangi bir sanal alanı) etki alanları listesi tarafından kontrol edilir. Bu makine aslında bir alanın birincil MX'i ise, mevcut olmayan kullanıcıların postaları kesilmiş. Bu kutunun yalnızca giden iletileri göndermesi gerekiyorsa, yalnızca hedef etki alanını belirsizlikten kaldırmak ($ ​​etki alanını listeden kaldırarak) yeterlidir; yine de user@hostname.domain.tld için doğrudan ileti kabul eder, ancak kullanıcı için @ domain.tld, başka bir yerde teslim edilmek üzere MX arama sürecinden geçecektir.


1
Eğer neden kendim için iki kullanıcımız var mı ... deli gidiyordu, benim günü kurtardı tstaerk ve thorsten;)
Thorsten stærk

5

Yerel etki alanınıza bir mesaj gönderdiğinizde, postfix alıcının var olup olmadığını kontrol etmekten sorumludur. Başka bir etki alanına e-posta gönderdiğinizde, postfix'in böyle bir sorumluluğu yoktur.

Test denilen yerel bir kullanıcının olması gerekir

useradd -s /bin/bash -d /home/test -U test

veya, / etc / aliases içindeki testten yerel bir kullanıcıya bir takma isme ihtiyacınız var

echo "test: root" >> /etc/aliases
postalias /etc/aliases

Bir hepinizin ayarlanması gerekir.


Bu e-postayı atlamanın bir yolu var, böylece e-posta gönderdiğim her kişi için bir kullanıcı oluşturmam gerekmiyor mu? Bu sunucuyu birincil posta sunucumuz olarak kullanmak istemiyorum, yalnızca hata oluştuğunda bir uygulamadan giden e-postaları göndermek için. Uygulama e-postası için yeni bir alıcı eklemek istediğimde sunucuyu güncellememeyi tercih ederim.
Tai Squared

Diyelim ki 'admin@etkialanz.com' adresine e-posta göndermek istediğinizi varsayalım, yapmanız gereken, yerel posta ekinizin 'domainz.com' adresinden sorumlu olmadığından emin olmaktır, aksi takdirde kullanıcıyı yerel olarak doğrulamaya çalışır. Bu nedenle, 'etkialanım' direktifini 'etkialanim = yerel.server' gibi farklı bir şeye ayarlayınız ve postfix, e-postanızı 'domainz.com' adresinden sorumlu sunucuya gönderecektir
Julien Vehent

1

Bu yüzden benzer bir sorun yaşıyorum ve henüz tam olarak çözemedim, ama bu sizi doğru yöne kaydırmalı:

http://www.postfix.org/STANDARD_CONFIGURATION_README.html

"Boş bir istemcide postfix" bölümüne bakın - istediğin şeyin bu olduğunu düşünüyorum. Ayrıca, sayfadaki postfix'in web sitesinde belirtilen local_recipient_maps ayarını ayarlamayı da denedim: LOCAL_RECIPIENT_README.html

Her iki bağlantı da burada peşimizden geleni yapmalı, ama onları işe alamıyorum. Tam null istemci kurulumunu yaptığımda, SMTP testi e-postası göndermek için telnet kullanmaya çalışmak işe yaramıyor. "Telnet: adres 97.74.92.30'a bağlan: bağlantı reddedildi" alıyorum. Yerel alıcı haritasını ayarlarken, RCPT TO: komutundaki arama, daha önce olduğu gibi bir hata mesajı vermiyor, ancak e-postayı gönderdikten sonra (normal görünüyor), aslında hiçbir e-posta gönderilmiyor ve posta günlüğünde bir hata var:

"550-Posta kutusu bilinmiyor. Bu 550 adla ilişkilendirilmiş bir posta kutusu yok veya onu görme yetkiniz yok. 550 5.1.1 Kullanıcı bilinmiyor"

Şansın yaver giderse haberim olsun.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.