postfix จะส่ง แต่ไม่ได้รับอีเมล


1

ฉันกำลังเรียกใช้ postfix บน Raspberry Pi ด้านหลังเราเตอร์โฮมที่มีการกำหนดค่า DNS แบบไดนามิก postfix สามารถส่งอีเมลได้ แต่ไม่ได้รับ

ฉันคิดว่าเราเตอร์ที่บ้านและ DNS แบบไดนามิกนั้นใช้ได้ฉันกำลังโฮสต์เว็บไซต์บน Raspberry Pi มันใช้งานได้ดีและเข้าถึงได้ทั่วไป ดังนั้นระเบียน MX ของฉันไม่ได้รับการกำหนดค่าอย่างเหมาะสมหรือไม่ได้เป็น postfix (ฉันคิดว่า)

(ฉันเขียนชื่อโฮสต์ของฉันใหม่ด้านล่าง)

การกำหนดค่า DNS แบบไดนามิกสำหรับ myhostname.ddns.net

  • ที่อยู่ IPv4: ที่อยู่ IP ของ Raspberry Pi ของฉัน
  • ระเบียน MX: myhostname.ddns.net, Priority 1

การกำหนดค่าการส่งต่อพอร์ตบนเราเตอร์ในบ้าน

D   Service Port    Internal Port   IP Address  Protocol
1   80      80      192.168.0.10    ALL     # web server
2   22      22      192.168.0.10    ALL     # ssh
3   25      25      192.168.0.10    TCP     # mail server

บนคอมพิวเตอร์เครื่องที่สามไม่ใช่ Raspberry Pi

  • ping myhostname.ddns.net: ใช้ได้ฉันเห็นที่อยู่ IP ของ Raspberry Pi ของฉันตอบกลับ
  • ชี้เบราว์เซอร์ไปที่http://myhostname.ddns.net: ใช้งานได้ฉันเห็นรากของเว็บไซต์ นี่เป็นการยืนยันว่า DNS แบบไดนามิกทำงานและการส่งต่อเราเตอร์ในบ้านกำลังทำงาน
  • ในบัญชี gmail การส่งเมลจะpi@myhostname.ddns.netล้มเหลวหลังจากผ่านไปประมาณ 24 ชั่วโมงด้วย "การส่งไม่สมบูรณ์เซิร์ฟเวอร์ผู้รับไม่ยอมรับคำขอเชื่อมต่อของเราหมดเวลา" หากคุณรู้วิธีที่รวดเร็วกว่าในการทดสอบที่ไม่ต้องรอ 24 ชั่วโมงโปรดแจ้งให้เราทราบ

บน Raspberry Pi เข้าสู่ระบบในชื่อ "pi"

$ mail
No mail for pi

$ dig myhostname.ddns.net MX +short
1 myhostname.ddns.net

$ sudo postfix status
postfix/postfix-script: the Postfix mail system is running: PID: 16232

$ sudo netstat -plutn | grep 25
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      16232/master

$ sudo iptables -L -n -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination

$ cat /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Raspbian)
biff = no
append_dot_mydomain = no
readme_directory = no
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_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_recipient_restrictions =
    permit_sasl_authenticated,
    permit_mynetworks,
    reject_unauth_destination
smtpd_relay_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    defer_unauth_destination
myhostname = myhostname.ddns.net
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = myhostname.ddns.net, myhostname, localhost.localdomain, 
localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
home_mailbox = Maildir/
mailbox_command =
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes

$ cat /etc/mailname
myhostname.ddns.net

ปรับปรุง

Comcast บล็อกพอร์ต 25 ดูhttps://www.xfinity.com/support/articles/email-port-25-no-longer-supported


คุณอาจทราบอยู่แล้ว แต่มีบริการจำนวนมากที่จะรับจดหมายบนพอร์ต 25 ในนามของคุณ (คุณใส่เซิร์ฟเวอร์ในระเบียน MX ของคุณ) และพวกเขาจะส่งต่ออีเมลไปยังพอร์ตอื่นที่ไม่ถูกบล็อกในบ้านของคุณ การเชื่อมต่อซึ่งเซิร์ฟเวอร์อีเมลของคุณกำลังรับฟังอยู่ (ยังคงส่งต่อพอร์ตบนเราเตอร์ในพื้นที่ของคุณอย่างเห็นได้ชัด) ข้อเสียเปรียบเพียงอย่างเดียวคือคนส่วนใหญ่ต้องการจำนวนเงินที่เหมาะสมสำหรับบริการเหล่านี้ ที่ถูกที่สุดที่ฉันได้พบบุคคลเป็นmxguarddog.com พวกเขาสามารถเป็นอิสระถ้าคุณสามารถอยู่กับเพียงแค่ใช้ postmaster@yourdomain.com
Anaksunaman

1
@ Anakunaman ฉันไม่ได้ตระหนักถึงบริการเหล่านี้ขอบคุณ! ดูเหมือนว่า mxguarddog.com ตอนนี้คือ $ 0.25 / user / mth ไม่เลวแม้ว่ามันจะถูกเพิ่มไปยังค่าใช้จ่ายในการโฮสต์เซิร์ฟเวอร์อีเมลเนื่องจากสิ่งที่พวกเขาทำคือการถ่ายทอด ยังคงเป็นตัวเลือกที่ดี!
mipnw

คำตอบ:


1

มีบางสิ่งที่คุณต้องตรวจสอบที่นี่

  1. ฉันเดาว่า Google ไม่สามารถส่งอีเมลถึงคุณได้เนื่องจากคุณไม่มีระเบียน MX แต่ลองทำเป็นว่ามันไม่ใช่ปัญหาซักพักแล้วลองแก้ไขปัญหาอื่น ๆ (ไม่ DDNS จะไม่ให้ MX กับคุณด้วยเหตุผลหลายประการ)

  2. ตรวจสอบให้แน่ใจว่าคุณได้รับอนุญาตให้เชื่อมต่อพอร์ต 25 ของคุณจากอินเทอร์เน็ต ฉันเดาว่าคุณจะไม่สามารถที่จะทดสอบ แต่โปรดทำต่อไปนี้:

    nc -vv myhostname.ddns.net 25

หรือ

telnet myhostname.ddns.net 25

นั่นควรจะปรากฏขึ้นหากคุณได้รับอนุญาตให้เชื่อมต่อกับพอร์ต 25 - คุณคิดว่า ISP บางรายอาจบล็อกการเชื่อมต่อขาเข้ากับพอร์ต 25 แน่นอนคุณต้องตรวจสอบไฟร์วอลล์ภายในของคุณบน pi (คุณใช้ Linux distro อะไร)

  1. ทันทีที่คุณเชื่อมต่อกับเซิร์ฟเวอร์คุณจะสามารถส่งอีเมลโดยใช้ telnet / nc

    EHLO myhostname.ddns.net

(คุณควรมาที่นี่สองสามบรรทัดเริ่มต้นที่ 250)

mail from: your@myhostname.ddns.net
rcpt to: email@to_send_it_to.com
subject: Test email

จากนั้นเริ่มอีเมลพิมพ์ดีดของผู้พิมพ์ดีด ลงท้ายด้วย single "." ในบรรทัดสุดท้ายเช่นนั้น:

Test email from my server.
.

จากนั้นคุณจะเห็นว่ามีการส่งอีเมลหรือยอมรับอย่างน้อยที่สุด ไม่ต้องรอ 24 ชั่วโมง :)

  1. ฉันสงสัยจริงๆว่าคุณจะสามารถใช้เซิร์ฟเวอร์อีเมล Pi ของคุณสำหรับการทดสอบอะไรก็ได้ เพื่อเริ่มต้นกับคุณไม่มีระเบียน MX และไม่สามารถควบคุม DKIM, PTR และ SPF ... กล่าวอีกนัยหนึ่งมันจะไม่พร้อมใช้งานและผู้ใช้จะไม่รับอีเมลจากเซิร์ฟเวอร์ของคุณ และความจริงที่ว่าคุณอยู่ใน IP แบบไดนามิกหมายความว่า IP ของคุณถูกบล็อกโดยตัวกรองสแปม 99% ใช่เพียงเพราะมันไม่คงที่

1. ที่จริงผู้ให้บริการ DDNS ของฉันให้ตัวเลือกในการกำหนดค่าระเบียน MX ฉันกำหนดค่ามัน และdig myhostname.ddns.net MX +shortผลตอบแทน1 myhostname.ddns.netซึ่งเป็นสิ่งที่ฉันคาดหวัง
mipnw

2. นั่นคือปัญหาแน่นอน ฉันสามารถ telnet ไปยังพอร์ต 25 จากภายใน LAN แต่ไม่ได้มาจากภายนอก พอร์ต 25 บน rasbperry PI เปิดอยู่เนื่องจากฉันสามารถ telnet ไปยังได้จากภายใน LAN การส่งต่อพอร์ตบนเราเตอร์ที่บ้านของฉันทำงานได้ตั้งแต่ฉันสามารถ SSH ไปยัง PI จากนอก LAN และนำทางเว็บไซต์จากนอก LAN ดังนั้นพอร์ต 80 และ 22 ไปข้างหน้าก็โอเคและพอร์ต 25 ก็ถูกตั้งค่าให้ส่งต่อเช่นกัน Comcast ต้องบล็อกพอร์ต 25 แต่ทำไม
mipnw

3. ฉันไม่คาดหวังว่า PI นี้จะจัดการปริมาณการจราจรที่ศาลา นั่นไม่ใช่จุดของการตั้งค่านี้ ความต้องการของฉันควรได้รับการจัดการอย่างเหมาะสมมากกว่าโดยราสเบอร์รี่ PI นอกจากนี้ฉันสามารถส่งอีเมลจาก PI ผ่าน GMAILs SMTP ได้ดีและยังไม่สิ้นสุดในโฟลเดอร์สแปมของผู้รับ ฉันไม่สนใจว่า PI ของฉันจะได้รับสแปมเมื่อฉันเปิดพอร์ต 25 ฉันสามารถจัดการกับมันได้
mipnw

ลินุกซ์ distro บน PI คือ raspbian
mipnw

Comcast บล็อกพอร์ต 25: xfinity.com/support/articles/email-port-25-no-longer-supported
mipnw

0

ดังที่ Comcast พูดถึงพอร์ตที่ถูกบล็อกในเครือข่ายของ Comcastคุณสามารถใช้พอร์ต 587 ได้

แก้ไข: ComCast ระบุด้วย -> หากคุณใช้เซิร์ฟเวอร์อีเมลโปรดติดต่อ Comcast Customer Security Assurance ที่ 1-877-807-6580 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบล็อกนี้

โปรดดู: วิธีกำหนดค่าการเข้ารหัส TLS ใน Postfix


2
การกำหนดค่าการเข้ารหัส TLS จะไม่อนุญาตให้เซิร์ฟเวอร์อีเมลของฉันรับอีเมลขาเข้าจากเซิร์ฟเวอร์อีเมลอื่นให้กับผู้ใช้ของฉัน หากฉันเข้าใจเซิร์ฟเวอร์อีเมล SMTP (ไม่แน่ใจ) ฉันพยายามส่งอีเมลไปยังเซิร์ฟเวอร์ของฉันจะเชื่อมต่อกับพอร์ต 25 พอร์ต 587 ใช้สำหรับอีเมลขาออกจากผู้ใช้ของฉันผ่านเซิร์ฟเวอร์ของฉันไปทั่วโลก พอร์ต 25 ถูกปิดกั้นดังนั้นฉันจึงไม่สามารถรับอีเมลได้อีกต่อไปซึ่งเอาชนะจุดประสงค์ของการให้บริการพื้นที่หลังบริการอินเทอร์เน็ตที่บ้าน
mipnw


จริง คำตอบของ Jason Berg ในลิงก์ของคุณ "พอร์ต 25 จะต้องเปิดเพื่อให้สามารถรับจดหมายจากอินเทอร์เน็ตเซิร์ฟเวอร์อีเมลทั้งหมดจะสร้างการเชื่อมต่อที่พอร์ต 25 และเริ่มต้น TLS (เข้ารหัส) บนพอร์ตนั้นหากจำเป็น" ค่อนข้างชัดเจน น่าเสียดายที่โฮสท์เซิร์ฟเวอร์เมลนั้นเสียชีวิตเมื่อพอร์ต 25 ถูกบล็อก
mipnw
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.