主题: 使用别名时,内部收发正常,外部发送来的邮件会被退信

内部通过alias发送邮件,收发都没有问题,但从外部发送邮件到iremail0.61,正式的邮箱是可以的,如果是邮箱的别名,会有会退信如下:
This is the mail system at host localhost.localdomain.

I'm sorry to have to inform you that your message could not be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can delete your own text from the attached returned message.

                   The mail system

<it@test.cn>: user unknown


服务器上的日志为:
Mar 10 14:34:31 localhost postfix/qmgr[3465]: 6F8F8D74D45: from=<ailakj@sohu.com>, size=7201, nrcpt=1
(queue active)
Mar 10 14:34:31 localhost postfix/smtpd[13545]: disconnect from unknown[192.200.8.185]
Mar 10 14:34:31 localhost postfix/pipe[13549]: 6F8F8D74D45: to=<it@test.cn>, relay=dovecot, d
elay=0.06, delays=0.02/0.02/0/0.01, dsn=5.1.1, status=bounced (user unknown)



版主能帮忙看一下吗?

回复: 使用别名时,内部收发正常,外部发送来的邮件会被退信

说明一下,用户信息保存在mysql里,是用postfixadmin添加的别名。

回复: 使用别名时,内部收发正常,外部发送来的邮件会被退信

buaawtg 写道:

<it@test.cn>: user unknown

Postfix/Dovecot 查不到这个帐号。

你可以通过 postmap 命令检查一下:

# postmap -q 'it@test.cn' mysql:/etc/postfix/mysql_virtual_alias_maps.cf

如果有返回对应的别名邮箱,则表示是正确的。如果没有返回,检查一下你的 mysql 数据库里这个别名相关的数据是否正确。

4 最后由 buaawtg (2011-03-10 16:23:20) 编辑

回复: 使用别名时,内部收发正常,外部发送来的邮件会被退信

感谢版主回复。

我用wtg@test.cn发送给it@test.cn是正常的,
用另外一台邮件服务器发送给wtg@test.cn是正常的,
但如果用另外一台邮件服务器发送给it@test.cn,就会收到以上的退信。

刚刚用以上命令运行了,结果是正常的如下:

[root@localhost postfix]# postmap -q 'it@test.cn' mysql:/etc/postfix/mysql_virtual_alias_maps.cf
wtg@test.cn,www@test.cn,ranran@test.cn

回复: 使用别名时,内部收发正常,外部发送来的邮件会被退信

buaawtg 写道:

Mar 10 14:34:31 localhost postfix/pipe[13549]: 6F8F8D74D45: to=<it@test.cn>, relay=dovecot, d
elay=0.06, delays=0.02/0.02/0/0.01, dsn=5.1.1, status=bounced (user unknown)

似乎是 dovecot 查不到这个帐号。

打开 /etc/dovecot-mysql.conf,按照它的查询语句测试一下。

回复: 使用别名时,内部收发正常,外部发送来的邮件会被退信

it是个别名,在alias那张表里有相应的记录和对应关系,
但在/etc/dovecot-mysql.conf里的语句只查询mailbox表,里面是没有别名it的数据,只有其对应关系的那些数据比如wtg,ranran等。
我在iredmail内部之间发送的时候,发现在到达DOVECOT之前,别名就被解析成正式地址了,但外部发过来的时候,就没有做相应的解析,不知道为什么。

7 最后由 buaawtg (2011-03-10 17:22:16) 编辑

回复: 使用别名时,内部收发正常,外部发送来的邮件会被退信

大概知道问题出在哪里了,我没有用iredmail自带的防病毒软件,而是使用了趋势的IMSS,并且将mx记录指向了IMSS,IMSS扫描通过后会直接将邮件传递给iredmail的10025端口,而dovecot是不对别名进行解析的,不是这个原因造成的?如果希望dovecot解析别名该怎么做?

回复: 使用别名时,内部收发正常,外部发送来的邮件会被退信

Dovecot 在这个环节是提供 LDA (Local Deliver Agent),它不区分 alias,直接认为这个是一个存在的用户。
因为一般情况下,是由 postfix 查询 alias 并得到实际的用户地址后,再交给 LDA 投递邮件。

回复: 使用别名时,内部收发正常,外部发送来的邮件会被退信

哦,看来我需要把mx记录指向iredmail,然后再将邮件转给外部防病毒软件扫描,构架要再改一下。
谢谢斑竹,回复真的很及时。