Welcome to Snooda's Blog
    从sendmail迁移到postfix,由于在服务器上有邮件转发服务,之前对于任意目标邮件地址都转发到固定账户,然后由一个分拣程序根据规则分发。sendmail在/etc/mail/sendmail.mc里添加:define(`LUSER_RELAY',`local:default_account')dnl,然后make -C /etc/mail重新编译一下即可。

    对于postfix就复杂很多了,参数有本地alias,virtual alias等等很多概念,刚开始尝试virtual alias,用virtual_alias_maps指定对应的正则文件,同时需调用postmap编译一下正则文件成db。设置了几条正则,发现总是命中第一条,奇怪,后来在正则表达式都加了^和$进一步限定了一下才好,比较奇怪。但后来发现针对用户名做alias不可行,因为向外发出的邮件也会做alias,导致无法发邮件出去。
    然后尝试alias_maps和alias_database,这两个参数的区别没看出来,看文档说是都是针对本地邮件的规则,默认都是/etc/aliases文件,但这个文件不支持正则,因为用的是:alias_maps = hash:/etc/aliases,尝试了一下alias_maps = regexp:/etc/postfix/aliases,发现会死循环。也比较恶心。当然,这个aliases文件也需要调用newaliases编译。

    最后又回到使用virtual_alias_maps方式,因为找到了一个方法,原来可以对域设置默认值,这样只要在/etc/postfix/virtual设置:@domain.com default_account 就ok了。然后使用virtual_alias_maps = hash:/etc/postfix/virtual,重启postfix即可。



    postfix功能强大,配置也复杂不少,文档不是很丰富。配置坑很多,有待研究。


Tags:
    今天在一台新机器上调用mutt时发现一个问题,报找不到dst@example.com这个文件,而dst@example.com是邮件的目的地址,命令在centos上运行正常,在ubuntu上就不行了,查了下,原因是我用了管道向mutt传送正文,并且用-s指定了标题,目标邮件地址跟在标题后面,导致新版mutt认为目标邮件地址也是一个标题。在地址前加上两个减号就ok了。

    echo ‘my comment" | mutt -a file -s SUBJECT -- dst@dst.com


    这时还是发现报错,说邮件过大,原来postfix默认邮件大小是10m,而我发送的备份邮件单封是20m,所以需要在/etc/postfix/main.cf中添加配置:message_size_limit = 0  不限制大小。ok了。



Tags: ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]