当外部域发送电子邮件时,Postfix不应用虚拟邮箱规则

我设置我的Postfix使用虚拟邮箱。 当我通过远程login邮件服务器并发送邮件时,它可以完美地工作(无论是在邮件服务器还是从远程客户端进行远程login时)。 邮件文件位于“新build”下的指定目录内。

但是,如果我从外部发送一封没有Telnet的电子邮件,这封/var/mail/作为一个文件recipient (例如xyxl)login在/var/mail/理论上包含发送给该收件人的所有电子邮件,而不是所需的目录/var/mail/vmail/xyxl/new作为一个只包含一个电子邮件的文件。

这可能与权限问题有关吗? 我将/ var / mail / vmail设置为具有uid = 5000和gid = 5000的所有者vmail和组所有者vmail。 我这样做是因为我多次看到它,认为这是好的。 也许postfix默认为/var/mail而不是/var/mail/vmail因为它没有权限? 但是,当我接收邮件login到收件人帐户并将该邮件文件写入该用户时,我阅读了该postfix。 收件人xyxl是组vmail的一部分。 但是,为什么它会通过telnet工作,而不是通过正常的电子邮件然后…

我的设置是没有什么特别的,只有一个Postfix在整个本地networking充当网关(如果这是错误的话,没有中继发生)。

Postfix显然接受电子邮件,但是我会包含日志。

输出postconf -n

 append_dot_mydomain = no biff = no config_directory = /etc/postfix inet_interfaces = all inet_protocols = ipv4 mailbox_size_limit = 0 mydestination = $mydomain, localhost.localdomain, localhost mydomain = mail.example.net myhostname = foobar mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = mail.example.net readme_directory = no recipient_delimiter = + relayhost = smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) smtpd_recipient_limit = 5 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 smtpd_use_tls = yes virtual_gid_maps = static:5000 virtual_mailbox_base = /var/mail/vmail virtual_mailbox_domains = example.net virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_minimum_uid = 100 virtual_uid_maps = static:5000 

我的/ etc / postfix / vmailbox

 [email protected] example.net/xyxl/ 

postfix.log发送到[email protected]

 Feb 7 00:42:16 foobar postfix/smtpd[14942]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled Feb 7 00:42:16 foobar postfix/smtpd[14942]: connect from mail-wg0-f46.google.com[74.125.82.46] Feb 7 00:42:16 foobar postfix/smtpd[14942]: 3A4C6BFDC2: client=mail-wg0-f46.google.com[74.125.82.46] Feb 7 00:42:16 foobar postfix/cleanup[14945]: 3A4C6BFDC2: message-id=<[email protected]> Feb 7 00:42:16 foobar postfix/qmgr[13866]: 3A4C6BFDC2: from=<[email protected]>, size=1848, nrcpt=1 (queue active) Feb 7 00:42:16 foobar postfix/local[14946]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled Feb 7 00:42:16 foobar postfix/smtpd[14942]: disconnect from mail-wg0-f46.google.com[74.125.82.46] Feb 7 00:42:16 foobar postfix/local[14946]: 3A4C6BFDC2: to=<[email protected]>, relay=local, delay=0.14, delays=0.1/0/0/0.04, dsn=2.0.0, status=sent (delivered to mailbox) Feb 7 00:42:16 foobar postfix/qmgr[13866]: 3A4C6BFDC2: removed 

postfix.log发送到[email protected]

 Feb 7 01:43:52 NSFW postfix/smtpd[17722]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled Feb 7 01:43:52 NSFW postfix/smtpd[17722]: connect from mail-we0-f180.google.com[74.125.82.180] Feb 7 01:43:52 NSFW postfix/smtpd[17722]: E623EBFDC5: client=mail-we0-f180.google.com[74.125.82.180] Feb 7 01:43:52 NSFW postfix/cleanup[17726]: E623EBFDC5: message-id=<[email protected]> Feb 7 01:43:53 NSFW postfix/qmgr[13866]: E623EBFDC5: from=<[email protected]>, size=1832, nrcpt=1 (queue active) Feb 7 01:43:53 NSFW postfix/local[17727]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled Feb 7 01:43:53 NSFW postfix/smtpd[17722]: disconnect from mail-we0-f180.google.com[74.125.82.180] Feb 7 01:43:53 NSFW postfix/local[17727]: E623EBFDC5: to=<[email protected]>, relay=local, delay=0.13, delays=0.09/0.01/0/0.03, dsn=2.0.0, status=sent (delivered to mailbox) Feb 7 01:43:53 NSFW postfix/qmgr[13866]: E623EBFDC5: removed 

我只是重复一下达夫所说的话:

你的日志栏目说的是实话。 发件人发送收件人地址为[email protected]的电子邮件。

除非你能certificate发件人用收件人[email protected]电子邮件,神奇的谷歌把它转换成[email protected] ,这里没有什么可做的。 这是客户端故障,而不是您的服务器故障