Postfix-Mailman"收件人地址被拒绝:本地收件人表中的用户未知"

Rya*_*n H 1 ubuntu configuration postfix-mta mailman ubuntu-14.04

我认为错误是我的postfix配置的问题.我按照这里的说明中的步骤设置了apache/postfix/mailman.

真实域名被mydomain.com取代 我创建了一个名为mailman的默认邮件列表.当我向mailman@mydomain.com发送电子邮件时,我在mail.log中收到错误"收件人地址被拒绝:本地收件人表中的用户未知".

550 5.1.1 <mailman@mydomain.com>: Recipient address rejected: User unknown in local recipient table; from=<-----@gmail.com> to=<mailman@mydomain.com> proto=ESMTP helo=<mail-wi0-f174.google.com>
Run Code Online (Sandbox Code Playgroud)

摘自我的postfix/main.cf:

myhostname = mydomain.com
mydestination = mydomain.com, localhost
inet_protocols = ipv4
relay_domains = mydomain.com
transport_maps = hash:/etc/postfix/transport
mailman_destination_recipient_limit = 1
Run Code Online (Sandbox Code Playgroud)

摘自/ etc/postfix/transport

mydomain.com mailman:
Run Code Online (Sandbox Code Playgroud)

摘自postfix/master.cf

mailman   unix  -       n       n       -       -       pipe
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${user}
Run Code Online (Sandbox Code Playgroud)

如果我理解它应该如何工作......

  1. 邮件进入mydomain.com
  2. postfix根据$ myhostname验证主机名
  3. postfix在relay_domains下找到mydomain.com
  4. postfix将邮件中继到transport_maps下列出的传输
  5. 在这里失败了?postmap表发现mailman@mydomain.com与mydomain.com匹配
  6. postmap将邮件定向到master.cf中定义的mailman:transport
  7. transport mailman:调用postfix-to-mailman.py,mailman处理邮件

Rya*_*n H 8

我不知道这是否有资格作为答案,但在做了更多阅读后我得出了这个结论,并希望它能帮助别人.

有两种方法可以使用postfix配置mailman.1.使用传输地图,就像我上面尝试的那样2.别名映射

从我的阅读来看,使用'postfix-to-mailman.py'的方法1是非官方的,并且得不到很好的支持.所以我尝试尝试方法2并且它有效!

步骤: 删除传输方法

从postfix/main.cf中删除行:

relay_domains = mydomain.com
transport_maps = hash:/etc/postfix/transport
mailman_destination_recipient_limit = 1
Run Code Online (Sandbox Code Playgroud)

从master.cf中删除行:

mailman   unix  -       n       n       -       -       pipe
   flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
   ${nexthop} ${user}
Run Code Online (Sandbox Code Playgroud)

从/ etc/postfix/transport中删除所有行:

lists.domain.com   mailman:
Run Code Online (Sandbox Code Playgroud)

切换到别名方法

取消注释/usr/lib/mailman/Mailman/mm_cfg.py中的行

MTA = 'Postfix'
Run Code Online (Sandbox Code Playgroud)

将别名文件复制到mailman目录并运行genaliases以创建别名db

sudo cp /etc/aliases /var/lib/mailman/data/aliases
sudo /usr/lib/mailman/bin/genaliases
sudo chomod g+w /var/lib/mailman/data/aliases.db
Run Code Online (Sandbox Code Playgroud)

更新postfix/main.cf中的alias_maps以指向新的别名文件

alias_maps = hash:/etc/aliases,hash:/var/lib/mailman/data/aliases
alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
Run Code Online (Sandbox Code Playgroud)

重新加载并重新启动

sudo /etc/init.d/postfix reload
sudo service postfix restart
Run Code Online (Sandbox Code Playgroud)