อีเมลที่ส่งจากโดเมนอื่นที่โฮสต์โดย dovecot กำลังถูกส่ง แต่อีเมลจาก gmail, outlook และอื่นๆ จะไม่ถูกนำส่ง
ฉันทำตามบทช่วยสอนนี้: https://www.linuxbabe.com/mail-server/setup-basic-postfix-mail-sever-ubuntu (จนถึงและรวมถึงขั้นตอนที่ 7 (ฉันไม่ได้เพิ่มตัวกรองสแปม)) เมื่อประมาณ 6 เดือนที่แล้วและใช้งานได้ 6 เดือน ฉันได้เปลี่ยนไปใช้เซิร์ฟเวอร์อื่นตั้งแต่นั้นมา และไม่มีการส่งอีเมลจากเซิร์ฟเวอร์ภายนอก แต่ฉันสามารถส่งอีเมลไปยังเซิร์ฟเวอร์ภายนอกได้
เมื่อย้ายข้อมูล ฉันได้คัดลอก maildir และเนื้อหาทั้งหมด รวมทั้งไดเร็กทอรี /etc/dovecot และ /etc/postfix
ฉันใช้ MariaDB เพื่อจัดเก็บชื่อผู้ใช้ รหัสผ่าน และเมลเดอร์
/etc/postfix/main.cf:
smtpd_banner = $myhostname ESMTP $mail_name (อูบุนตู)
บิฟ = ไม่
append_dot_mydomain = ไม่
readme_directory = ไม่
ความเข้ากันได้_ระดับ = 2
smtpd_tls_cert_file=/etc/letsencrypt/live/mx.najemi.cz/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mx.najemi.cz/privkey.pem
smtpd_tls_security_level=พฤษภาคม
smtpd_tls_loglevel = 1
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_security_level = พฤษภาคม
smtp_tls_loglevel = 1
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
#บังคับใช้ TLSv1.3 หรือ TLSv1.2
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
ชื่อโฮสต์ของฉัน = mx.najemi.cz
alias_maps = แฮช:/etc/aliases
alias_database = แฮช:/etc/aliases
myorigin = /etc/ชื่อเมล
mydestination = $myhostname, localhost.$mydomain, localhost
รีเลย์โฮสต์ =
เครือข่ายของฉัน = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
ผู้รับ_ตัวคั่น = +
inet_interfaces = ทั้งหมด
inet_protocols = ทั้งหมด
message_size_limit = 52428800
mailbox_transport = lmtp:unix:private/dovecot-lmtp
smtputf8_enable = ไม่
virtual_mailbox_domains = พร็อกซี:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
virtual_mailbox_maps =
พร็อกซี:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf
พร็อกซี:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
virtual_alias_maps =
พร็อกซี:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf
พร็อกซี:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf
พร็อกซี:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_base = /var/vmail
virtual_minimum_uid = 2000
virtual_uid_maps = คงที่:2000
virtual_gid_maps = คงที่:2000
นโยบาย spf_time_limit = 3600
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
ปฏิเสธ_unauth_ปลายทาง
check_policy_service unix:private/policyd-spf
milter_default_action = ยอมรับ
milter_protocol=6
smtpd_milters = ท้องถิ่น:opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters
/etc/postfix/master.cf:
smtp inet n - y - - smtpd
การส่ง inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=เข้ารหัส
-o smtpd_tls_wrappermode=ไม่
-o smtpd_sasl_auth_enable=ใช่
-o smtpd_relay_restrictions=permit_sasl_authenticated ปฏิเสธ
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,ปฏิเสธ
-o smtpd_sasl_type=นกพิราบ
-o smtpd_sasl_path=ส่วนตัว/รับรองความถูกต้อง
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=ใช่
-o smtpd_sasl_auth_enable=ใช่
-o smtpd_relay_restrictions=permit_sasl_authenticated ปฏิเสธ
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,ปฏิเสธ
-o smtpd_sasl_type=นกพิราบ
-o smtpd_sasl_path=ส่วนตัว/รับรองความถูกต้อง
รถกระบะยูนิกซ์ n - y 60 1 รถกระบะ
การล้างข้อมูลยูนิกซ์ n - y - 0 การล้างข้อมูล
qmgr ยูนิกซ์ n - n 300 1 qmgr
#qmgr ยูนิกซ์ n - n 300 1 oqmgr
tlsmgr ยูนิกซ์ - - y 1,000? 1 tlsmgr
เขียนซ้ำยูนิกซ์ - - y - - เขียนใหม่เล็กน้อย
เด้งยูนิกซ์ - - y - 0 เด้ง
เลื่อนยูนิกซ์ - - y - 0 เด้ง
ติดตามยูนิกซ์ - - y - 0 ตีกลับ
ตรวจสอบยูนิกซ์ - - y - 1 ตรวจสอบ
ล้างยูนิกซ์ n - y 1,000? 0 ล้าง
พร็อกซีแมปยูนิกซ์ - - n - - พร็อกซีแมป
proxywrite unix - - n - 1 พร็อกซีแมป
smtp ยูนิกซ์ - - y - - smtp
รีเลย์ยูนิกซ์ - - y - - smtp
-o syslog_name=postfix/$service_name
showq ยูนิกซ์ n - y - - showq
ข้อผิดพลาดยูนิกซ์ - - y - - ข้อผิดพลาด
ลองใหม่ยูนิกซ์ - - y - - ข้อผิดพลาด
ทิ้งยูนิกซ์ - - y - - ทิ้ง
ยูนิกซ์ท้องถิ่น - n n - - ท้องถิ่น
ยูนิกซ์เสมือน - n n - - เสมือน
lmtp ยูนิกซ์ - - y - - lmtp
ทั่งยูนิกซ์ - - y - 1 ทั่ง
Scache ยูนิกซ์ - - y - 1 Scache
postlog unix-dgram n - n - 1 postlogd
maildrop ยูนิกซ์ - n n - - ไปป์
แฟล็ก=ผู้ใช้ DRhu=vmail argv=/usr/bin/maildrop -d ${ผู้รับ}
uucp ยูนิกซ์ - n n - - ไปป์
ค่าสถานะ =ผู้ใช้ Fqhu =uucp argv=uux -r -n -z -a$ผู้ส่ง - $nexthop!rmail (ผู้รับ $)
ifmail ยูนิกซ์ - n n - - ท่อ
ค่าสถานะ = F ผู้ใช้ = ftn argv = /usr/lib/ifmail/ifmail -r $nexthop (ผู้รับ $)
bsmtp ยูนิกซ์ - n n - - ท่อ
แฟล็ก = Fq ผู้ใช้=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$ผู้ส่ง $ผู้รับ
scalemail-backend unix - n n - 2 ไปป์
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
ยูนิกซ์บุรุษไปรษณีย์ - n n - - ไปป์
แฟล็ก=ผู้ใช้ FR=รายการ argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${ผู้ใช้}
policyd-spf ยูนิกซ์ - n n - 0 วางไข่
ผู้ใช้=policyd-spf argv=/usr/bin/policyd-spf
/etc/dovecot/conf.d/10-mail.conf:
mail_location = maildir:~/เมลเดียร์
mail_home = /var/vmail/%d/%n/
เนมสเปซกล่องจดหมาย {
กล่องจดหมาย = ใช่
}
postconf -n (เอาต์พุต):
alias_database = แฮช:/etc/aliases
alias_maps = แฮช:/etc/aliases
append_dot_mydomain = ไม่
บิฟ = ไม่
ความเข้ากันได้_ระดับ = 2
inet_interfaces = ทั้งหมด
inet_protocols = ทั้งหมด
mailbox_size_limit = 0
mailbox_transport = lmtp:unix:private/dovecot-lmtp
message_size_limit = 52428800
milter_default_action = ยอมรับ
milter_protocol=6
mydestination = $myhostname, localhost.$mydomain, localhost
ชื่อโฮสต์ของฉัน = mx.najemi.cz
เครือข่ายของฉัน = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/ชื่อเมล
non_smtpd_milters = $smtpd_milters
นโยบาย spf_time_limit = 3600
readme_directory = ไม่
ผู้รับ_ตัวคั่น = +
รีเลย์โฮสต์ =
smtp_tls_loglevel = 1
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_security_level = พฤษภาคม
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (อูบุนตู)
smtpd_milters = ท้องถิ่น:opendkim/opendkim.sock
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, cancel_unauth_destination, check_policy_service unix:private/policyd-spf
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/letsencrypt/live/mx.najemi.cz/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mx.najemi.cz/privkey.pem
smtpd_tls_loglevel = 1
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_security_level = พฤษภาคม
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtputf8_enable = ไม่
virtual_alias_maps = พร็อกซี:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, พร็อกซี:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, พร็อกซี:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.catchall_maps.catchall_maps
virtual_gid_maps = คงที่:2000
virtual_mailbox_base = /var/vmail
virtual_mailbox_domains = พร็อกซี:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = พร็อกซี:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf พร็อกซี:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
virtual_minimum_uid = 2000
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_uid_maps = คงที่:2000
นกพิราบ -n (เอาต์พุต):
auth_debug = ใช่
auth_debug_passwords = ใช่
mail_home = /var/vmail/%d/%n/
mail_location = maildir:~/เมลเดียร์
mail_privileged_group = เมล
เนมสเปซกล่องจดหมาย {
กล่องจดหมาย = ใช่
ที่ตั้ง =
กล่องจดหมายแบบร่าง {
อัตโนมัติ = สร้าง
special_use = \ฉบับร่าง
}
กล่องจดหมายขยะ {
อัตโนมัติ = สร้าง
special_use = \ขยะ
}
กล่องจดหมายที่ส่ง {
อัตโนมัติ = สร้าง
special_use = \ส่ง
}
กล่องจดหมาย "ข้อความที่ส่ง" {
อัตโนมัติ = สร้าง
special_use = \ส่ง
}
ถังขยะกล่องจดหมาย {
อัตโนมัติ = สร้าง
special_use = \ถังขยะ
}
คำนำหน้า =
}
รหัสผ่าน {
args = /etc/dovecot/dovecot-sql.conf.ext
ไดรเวอร์ = ตร.ม
}
โปรโตคอล = imap lmtp imap lmtp
บริการตรวจสอบสิทธิ์ {
unix_listener /var/spool/postfix/private/auth {
กลุ่ม = postfix
โหมด = 0660
ผู้ใช้ = postfix
}
}
บริการ lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
กลุ่ม = postfix
โหมด = 0600
ผู้ใช้ = postfix
}
}
ssl = จำเป็น
ssl_cert = </etc/letsencrypt/live/mx.najemi.cz/fullchain.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = # ซ่อน ใช้ -P เพื่อแสดง
ssl_key = # ซ่อน ใช้ -P เพื่อแสดง
ssl_min_protocol = TLSv1.2
ssl_prefer_server_ciphers = ใช่
userdb {
args = /etc/dovecot/dovecot-sql.conf.ext
ไดรเวอร์ = ตร.ม
}
/etc/dovecot/dovecot.conf:
โปรโตคอล = imap lmtp
!include_try /usr/share/dovecot/protocols.d/*.protocol
!include_try local.conf
/etc/dovecot/conf.d/10-auth.conf:
ปิดการใช้งาน_plaintext_auth = ใช่
auth_username_format = %Lu
auth_mechanisms = ธรรมดา
!รวม auth-sql.conf.ext
auth_debug = ใช่
auth_debug_passwords = ใช่
/etc/dovecot/conf.d/auth-sql.conf.ext:
รหัสผ่าน {
ไดรเวอร์ = ตร.ม
args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
ไดรเวอร์ = ตร.ม
args = /etc/dovecot/dovecot-sql.conf.ext
}
/etc/dovecot/dovecot-sql.conf.ext:
ไดรเวอร์ = mysql
เชื่อมต่อ = โฮสต์ = localhost dbname = ผู้ใช้ postfixadmin = รหัสผ่าน postfixadmin = PASSWORD_HERE
default_pass_scheme = ARGON2I
password_query = เลือกชื่อผู้ใช้เป็นผู้ใช้, รหัสผ่านจากกล่องจดหมายโดยที่ชื่อผู้ใช้ = '%u' AND active='1'
user_query = SELECT maildir, 2000 AS uid, 2000 AS gid จากกล่องจดหมาย โดยที่ username = '%u' AND active='1'
iterate_query = เลือกชื่อผู้ใช้เป็นผู้ใช้จากกล่องจดหมาย
/etc/dovecot/conf.d/10-master.conf:
บริการ lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
โหมด = 0600
ผู้ใช้ = postfix
กลุ่ม = postfix
}
}
บริการตรวจสอบสิทธิ์ {
unix_listener /var/spool/postfix/private/auth {
โหมด = 0660
ผู้ใช้ = postfix
กลุ่ม = postfix
}
}
/etc/dovecot/conf.d/10-ssl.conf:
ssl = จำเป็น
ssl_cert = </etc/letsencrypt/live/mydomain.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mydomain.com/privkey.pem
ssl_min_protocol = TLSv1.2