kru*_*unk 5 linux postfix gmail
这是设置:
我们有一个域 mydomain.com。一切都在我们自己的服务器上,除了通过 gmail 的通用电子邮件帐户。
目前 gmail 被设置为 MX 记录。
服务器还有各种电子邮件别名,它需要支持错误跟踪器等。例如 bugs@mydomain.com |/path/to/issuetracker.script
我正在努力进行设置,该设置允许在本地和来自用户的电子邮件客户端进行以下操作。
场景
因此,第一个尝试是创建运输地图。在这种情况下,我们的服务器将设置为 MX 和 guser* 目标电子邮件发送到 gmail。将 gmail 用户放在地图中,如下所示:
guser1@mydomain.com smtp:gmailsmtp:25
guser2@mydomain.com smtp:gmailsmtp:25
Run Code Online (Sandbox Code Playgroud)
问题:
第二个步骤是在 /etc/aliases 中设置显式本地主机别名,并在 mydomain 上进行域范围的转发。这也需要将本地服务器设置为 MX:
root: root@localhost
# transport
mydomain.com smtp:gmailsmtp:25
Run Code Online (Sandbox Code Playgroud)
问题: * 如果我为匹配“$myhostname”的域创建传输映射,则永远不会解析别名文件。因此,当本地用户(或守护进程)发送电子邮件时,如:
mail -s "testing" root < text.txt
Run Code Online (Sandbox Code Playgroud)
Postfix 忽略 /etc/alias 条目并映射到 root@mydomain.com 并尝试将其发送到 gmail 传输映射。
第三刺:
为错误创建一个子域,例如 bugs.mydomain.com。将此域的 MX 设置为本地服务器,并将 mydomain.com 的 MX 保留给 Gmail 服务器。
问题: * 不能解决本地帐户的问题。因此,当错误跟踪器响应来自 guser1@mydomain.com 的电子邮件时,它使用本地传输并且用户永远不会收到电子邮件。
% postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_at_myorigin = no
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = $myhostname, localhost.$myhostname, localhost
myhostname = mydomain.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_cert_file = /etc/ssl/certs/kspace.pem
smtp_tls_enforce_peername = no
smtp_tls_key_file = /etc/ssl/certs/kspace.pem
smtp_tls_note_starttls_offer = yes
smtp_tls_scert_verifydepth = 5
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = permit_mynetworks, reject_invalid_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_destination
smtpd_tls_ask_ccert = yes
smtpd_tls_req_ccert = no
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
tls_random_source = dev:/dev/urandom
transport_maps = hash:/etc/postfix/transport
Run Code Online (Sandbox Code Playgroud)
切换到虚拟。阅读 postfix 的虚拟文档。这样你就有了更多的控制权。
主要.cf:
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_maps = hash:/etc/postfix/virtualmailboxmap
virtual_mailbox_domains = mydomain.com
virtual_transport = local:
Run Code Online (Sandbox Code Playgroud)
virtual,列出您拥有的所有用户
localuser localuser
somealias localuser
guser1 guser1@gmail.mydomain.com,guser1
bugs issuetracker@issuetracker.mydomain.com
Run Code Online (Sandbox Code Playgroud)
virtualmailboxmap,列出所有本地用户,右侧并不重要!
localuser rhsunused
guser1 rhsunused
Run Code Online (Sandbox Code Playgroud)
运输:
mydomain.com local:
gmail.mydomain.com smtp:gmailsmtp:25
issuetracker.mydomain.com smtp:[issuetracker ip]:25
Run Code Online (Sandbox Code Playgroud)
我有一个赛勒斯:本地帐户的传输。我知道这并不是您所有问题的完整答案,但这可能是一个开始。