पोस्टफ़िक्स: प्राप्तकर्ता का पता अस्वीकृत: स्थानीय प्राप्तकर्ता तालिका में अज्ञात


30

जब मैं अपने पोस्टफ़िक्स सर्वर पर एक ही डोमेन पर एक पते पर एक ईमेल भेजने की कोशिश करता हूं (उदाहरण के लिए, यदि सर्वर hostname mail.example.com है और मैं test@example.com को एक ईमेल भेजने की कोशिश करता हूं), मुझे मिलता है लॉग और ईमेल में निम्नलिखित त्रुटि नहीं दी गई है Recipient address rejected: User unknown in local recipient table:। यदि मैं किसी अन्य डोमेन पर एक पते पर भेजता हूं, तो मुझे कोई समस्या नहीं है। यहाँ मेरी /etc/postfix/main.cf फ़ाइल है:

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

मैं इससे पहले भागा हूं जब सर्वरों में जो भी कारण के लिए सही होस्टनाम सेट नहीं होते हैं। क्या आपका mail.example.comएमएक्स रिकॉर्ड के साथ आपका डोमेन सेटअप है ? क्या यह सर्वर वास्तव में है mail.example.com?
बर्ट

जवाबों:


42

मुझे पता है कि यह सवाल थोड़ा पुराना है, इसलिए मैं यह मान रहा हूं कि इसका जवाब पहले ही दिया जा चुका है।

मेरे पास बस यही मुद्दा था, और मुझे यह पता लगाने में थोड़ा समय लगा कि क्या चल रहा है। मुझे लगता है कि मेरी स्थिति मूल प्रश्न के समान थी।

पोस्टफ़िक्स को इंटरनेट पर अन्य सर्वरों के लिए सभी मेल रिले करना चाहिए , यह वास्तव में किसी भी डोमेन के लिए मेल प्राप्त नहीं करता है। इसलिए example.com पर भेजे गए किसी भी मेल को example.com के मेल सर्वर पर भेज दिया जाना चाहिए। समाधान के रूप में b Techieb0y समझाया, लाइन से $ mydomain को हटाने के लिए है:

mydestination = $mydomain, localhost.$mydomain, localhost

यह पंक्ति पोस्टफिक्स को बताती है कि $ mydomain को भेजे गए किसी भी संदेश को इस सर्वर पर प्राप्त और संग्रहीत किया जाना है। यह वही नहीं है जो मैं चाहता हूं, मैं चाहता हूं कि उन संदेशों को example.com के लिए वास्तविक mailserver को भेजा जाए। एक बार जब मुझे इसका एहसास हुआ, और example.com को हटा दिया, तो मेल ने मेरी अपेक्षा के अनुरूप काम किया। मैं इसे बंद मौके पर पोस्ट कर रहा हूं कि यह स्पष्टीकरण किसी और की मदद करता है जो भविष्य में इस सवाल पर ठोकर खाता है।


18

त्रुटि बहुत ही स्व-वर्णनात्मक है: लक्ष्य ईमेल उपयोगकर्ता नाम (@ चिह्न के बाएं) को सिस्टम पर स्थानीय उपयोगकर्ता के लिए मैप नहीं किया जा सकता (डिफ़ॉल्ट पोस्टफ़िक्स सेटिंग्स), न ही वर्चुअल डोमेन (जैसा कि कोई भी कॉन्फ़िगर नहीं किया गया है) डिब्बा)। इस मैपिंग को आज़माने और करने का निर्णय 'mydestination' (साथ ही किसी वर्चुअल डोमेन) में डोमेन की सूची द्वारा नियंत्रित किया जाता है। यदि यह मशीन वास्तव में एक डोमेन का प्राथमिक एमएक्स है, तो मौजूद उपयोगकर्ता के पास मेल नहीं है। यदि इस बॉक्स में केवल आउटगोइंग संदेश भेजने की आवश्यकता है, तो केवल टारगेट डोमेन को mydestination से हटाकर (सूची से $ mydomain हटाकर) पर्याप्त होना चाहिए - यह अभी भी सीधे user@hostname.domain.tld के संदेशों को स्वीकार करेगा, लेकिन उपयोगकर्ता के लिए संदेश domain.tld डिलीवरी के लिए MX लुकअप प्रक्रिया के माध्यम से कहीं और जाएगा।


1
आपने मेरा दिन बचाया, मैं पागल हो रहा था ... मेरे पास अपने लिए दो उपयोगकर्ता क्यों हैं, tstaerk और थोरस्टेन;)
थोरस्टेन स्टैकर

5

जब आप अपने स्थानीय डोमेन को एक संदेश भेजते हैं, तो पोस्टफिक्स यह जांचने के लिए जिम्मेदार होता है कि प्राप्तकर्ता मौजूद है। जब आप किसी अन्य डोमेन को ईमेल भेजते हैं, तो पोस्टफ़िक्स के पास ऐसी कोई जिम्मेदारी नहीं होती है।

आपको या तो परीक्षण नामक एक स्थानीय उपयोगकर्ता की आवश्यकता है

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

या, आपको परीक्षण से स्थानीय उपयोगकर्ता / / उपनाम में उपनाम की आवश्यकता है

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

एक तुम सब सेट होना चाहिए।


क्या इस चेक को बायपास करने का कोई तरीका है इसलिए मुझे प्रत्येक व्यक्ति के लिए एक उपयोगकर्ता बनाने की ज़रूरत नहीं है जिसे मैं एक ईमेल भेजूं? मैं इस सर्वर को हमारे प्राथमिक मेल सर्वर के रूप में उपयोग नहीं करना चाहता, केवल त्रुटियों के होने पर किसी एप्लिकेशन से आउटगोइंग ईमेल भेजने के लिए। जब भी मैं एप्लिकेशन ईमेल के लिए नया प्राप्तकर्ता जोड़ना चाहता हूं, मुझे हर बार सर्वर को अपडेट नहीं करना पड़ेगा।
ताई चुकता

मान लें कि आप 'admin@domainz.com' पर ईमेल भेजना चाहते हैं, आपको यह सुनिश्चित करने की ज़रूरत है कि आपका स्थानीय पोस्टफ़िक्स 'domainz.com' के लिए ज़िम्मेदार नहीं है, अन्यथा यह स्थानीय रूप से उपयोगकर्ता को मान्य करने का प्रयास करेगा। तो, 'mydomain = local.server' जैसे निर्देश 'mydomain' को कुछ और पर सेट करें, और उपसर्ग आपके ईमेल को 'domainz.com' के लिए ज़िम्मेदार सर्वर पर भेज देगा
Julien Vehent

1

तो मुझे एक समान समस्या हो रही है और अभी तक इसका पता नहीं लगा है, लेकिन इससे आपको सही दिशा में आगे बढ़ना चाहिए:

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

"पोस्टफ़ुल पर एक अशक्त ग्राहक" खंड को देखें - मुझे लगता है कि यही आप चाहते हैं। मैंने पृष्ठ पर पोस्टफ़िक्स की वेबसाइट पर निर्दिष्ट के रूप में local_recipient_maps सेटिंग सेट करने का प्रयास किया: LOCAL_RECIPIENT_README.html

दोनों लिंक को वही करना चाहिए जो हम यहां कर रहे हैं, लेकिन मैं उन्हें काम करने के लिए नहीं कर सकता। जब मैं पूर्ण अशक्त क्लाइंट सेटअप करता हूं, तो टेस्ट एसएमटीपी ईमेल भेजने के लिए टेलनेट का प्रयास करने से काम नहीं चलता है। मुझे "टेलनेट: एड्रेस टू 97.74.92.30: कनेक्शन ने मना कर दिया" मिलता है। स्थानीय प्राप्तकर्ता मैप सेट करते समय, RCPT TO: कमांड में लुकअप एक त्रुटि संदेश नहीं देता है जैसा कि पहले था, लेकिन ईमेल भेजने पर (सामान्य दिखता है), कोई भी ईमेल वास्तव में नहीं भेजा जाता है, और maillog में कोई त्रुटि है:

"550-मेलबॉक्स अज्ञात। या तो इस 550-नाम से जुड़ा कोई मेलबॉक्स नहीं है या आपके पास इसे देखने के लिए प्राधिकरण नहीं है। 550 5.1.1 उपयोगकर्ता अज्ञात है।"

मुझे पता है अगर आप बेहतर किस्मत है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.