我在 VPS(Ubuntu 15.04 64 位)上使用 Postfix 和 DovecotOVH在法国小的两个 DNS 域的用户群(一打用户,主要是我的家人,每天少于一千封电子邮件,包括垃圾邮件),我们称它们为starynk.net
& melt.org
(实际的略有不同,但您可以轻松猜到它们)。大多数电子邮件地址是starynk.net
,极少数电子邮件地址melt.org
可能是别名到@starynk.net
postfix
软件包版本为2.11.3-1ubuntu1,dovecot-core
软件包为1:2.2.9-1ubuntu5
我仔细按照说明进行操作http://www.binarytides.com/install-postfix-dovecot-debian/它起作用了(终于!),因为我可以在我的家用 Debian Linux PC(这是不是OVH 的 VPS 服务器)到我的地址[email protected]
我想重要的配置在我的/etc/postfix/main.cf
:
# grep virtual /etc/postfix/main.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = /etc/postfix/virtual_mailbox_domains
文件/etc/postfix/virtual_mailbox_domains
包含:
# file /etc/postfix/virtual_mailbox_domains by Basile
starynk.net OK
melt.org OK
我想添加一些别名电子邮件starynk.net
(例如:[email protected]
-> [email protected]
....) 和melt.org
(例如[email protected]
-> [email protected]
)
当然,编辑/etc/aliases
然后运行newaliases
是不行的。
我想我需要虚拟别名域所以我可能需要添加某处在/etc/postfix/main.cf
(但是那里的顺序很重要吗?)像这样的行
virtual_alias_domains = starynk.net melt.org
virtual_alias_maps = hash:/etc/postfix/virtualaliases
(这是正确的吗?与现有设置兼容吗?)
最后放入新的/etc/postfix/virtualaliases
文件行,例如
## file /etc/postfix/virtualaliases by Basile
[email protected]: [email protected]
[email protected]: [email protected]
[email protected]: [email protected], [email protected]
[email protected]: [email protected]
当我以 root 身份运行时,postmap /etc/postfix/virtualaliases
我似乎收到了每个条目的警告:
postmap: warning: /etc/postfix/virtualaliases, line 2: record is in "key: value" format; is this an alias file?
postmap: warning: /etc/postfix/virtualaliases, line 3: record is in "key: value" format; is this an alias file?
postmap: warning: /etc/postfix/virtualaliases, line 4: record is in "key: value" format; is this an alias file?
postmap: warning: /etc/postfix/virtualaliases, line 5: record is in "key: value" format; is this an alias file?
但是,newaliases
编辑上面的文件后要运行的命令是什么?它可以接受 Postfix' 中记录的管道符号吗别名(5)?
最后,如何测试Postfix系统的配置呢?是否有一个 Postfix 命令(我将用它来测试我的新 Postfix 配置)解释电子邮件发生的情况[email protected]
没有必须发送一封实际的电子邮件吗?
还没工作!
service postfix restart
我按照命令做了postmap
但是没有作用:
<[email protected]>: host
mail.starynk.net[private/dovecot-lmtp] said: 550 5.1.1
<[email protected]> User doesn't exist:
[email protected] (in reply to RCPT TO command)
和
Reporting-MTA: dns; mail.starynk.net
X-Postfix-Queue-ID: 4BDE761BFE
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Thu, 31 Dec 2015 10:08:07 +0100 (CET)
Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.1.1
Remote-MTA: dns; mail.starynk.net
Diagnostic-Code: smtp; 550 5.1.1 <[email protected]> User doesn't
exist: [email protected]
工作(某种程度)
我终于设法让一些东西发挥作用。我的/etc/postfix/virtualaliases
文件有如下行:
# file /etc/postfix/virtualaliases by Basile without colons or commas
[email protected] [email protected]
[email protected] [email protected]
[email protected] [email protected] [email protected]
[email protected] [email protected]
(当然postmap /etc/postfix/virtualaliases
每次改变后我都要运行)
但我仍然不明白我怎么可能有一些 Unix 命令管道的别名,而且我对缺少逗号感到惊讶(这虚拟(5)正在建议)
答案1
如果您按照 postfix 手册页中所写的那样使用,则每次更改virtual_alias_maps = hash:/my/file
时都必须创建数据库。postmap /my/file
/my/file
我不知道 postfix 的任何功能,它提供了“空运行”操作。您应该使用本地 DNS 和邮件服务器在本地虚拟机中对其进行测试。
它不会影响任何其他配置选项。