ฉันตั้งค่า postifx เป็นการส่งต่อเมลโดยกำหนดค่าเซิร์ฟเวอร์ smtp ภายนอก โดยรวมแล้วใช้งานได้ดี แต่เป้าหมายของฉันคือเมลทั้งหมดจะถูกส่งต่อไปยังเซิร์ฟเวอร์ smtp ภายนอก - ยกเว้นรูท

/etc/postfix/main.cf:

#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
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_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.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost
relayhost = [smtp.relay.com]:587
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = 127.0.0.1
smtp_sasl_auth_enable = yes  
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd  
smtp_sasl_security_options = 
smtpd_use_tls=yes
smtp_tls_security_level = encrypt

ด้วยการกำหนดค่านี้ postfix พยายามส่งอีเมลรูทไปที่[email protected] ผ่านเซิร์ฟเวอร์ SMTP การจัดส่งในพื้นที่สำหรับรูทจะเป็นโซลูชันที่ฉันต้องการที่นี่

ใครสามารถช่วย?

ขอบคุณ!

answer

เนื่องจากการตั้งค่า postfix มีการตั้งค่าที่หลากหลาย ต่อไปนี้คือหมายเหตุบางส่วนที่อาจช่วยได้เมื่อเปิดใช้งานการส่งจดหมายในเครื่องบนระบบ Ubuntu 16 ที่ติดตั้ง postfix (เส้นทางอาจแตกต่างกันไปตามระบบต่างๆ):

Postfix จะไม่ส่งไปยัง root แต่คุณสามารถเปลี่ยนเส้นทางอีเมลทั้งหมดสำหรับ root ไปยังบัญชีผู้ใช้ localhost อื่นได้ เช่น ผู้ใช้ postfix หากมีอยู่ แต่ผู้ใช้รายอื่นจะทำ สำหรับการแก้ไขนั้น

/etc/aliases

ถึง เช่น:

postmaster: <USER1>
root: <USER1>
<USER2>: <USER1>
...

แล้วออกคำสั่ง

sudo newaliases


ต้องติดตั้ง Procmail ซึ่งสามารถทำได้เช่นโดยคำสั่ง

sudo apt ติดตั้ง procmail

(ยกเลิกได้จะติดตั้ง procmail ไว้แล้ว)


การตั้งค่าบางอย่างใน

/etc/postfix/main.cf

อาจจะ

myhostname = <HOSTNAME>@<LOCALNET>
mydestination = <ALL HOSTNAMES ASSIGNED TO 127.0.0.1, MAYBE ::1, IN /etc/hosts, DELIMITED BY SPACE>
local_transport = local
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
# following all possible arguments, strip as you like
notify_classes = bounce, 2bounce, delay, policy, protocol, resource, software

การปรับเปลี่ยนจะมีผลหลังจากออกคำสั่ง

sudo service postfix เริ่มใหม่


การอ่านล็อกไฟล์ช่วยได้มาก

/var/log/mail.log, /var/log/mail.err

การอ่านที่เป็นประโยชน์มากขึ้น:

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

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

http://www.postfix.org/postconf.5.html#local_transport

http://www.postfix.org/aliases.5.html