如何使用 EXIM mta 向非系统虚拟用户发送邮件

如何使用 EXIM mta 向非系统虚拟用户发送邮件

我们正在运行带有 postfix mta 的邮件服务器。但现在我们正转向 EXIM,因为它内置了许多功能,无需使用邮件过滤器。

在 postfix 中,你可以通过创建一个文件(比如 /etc/nonsysmail.txt)并在其中输入如下简单的行来轻松地向非系统用户发送邮件:

[email protected]   nonsysmail/nonsystemUserA/
[email protected]   nonsysmail/nonsystemUserB/
[email protected]   nonsysmail/nonsystemUserc/  
*@mail.virtual.host   nonsysmail/nonsystemUserAll/

postmap /etc/nonsysmail.txt

有没有办法使用纯文本文件来实现 EXIM 的相同功能。我不允许在那里使用 mysql db。有人可以建议我使用非系统虚拟用户和 EXIM mta 的完整程序吗?

答案1

这取决于你具体的 exim 配置,但它可以归结为在传输之后添加额外的传输real_local,例如:

virtual_local:
    driver = accept
    domains = +local_domains
    local_parts = lsearch;/etc/exim/virtual_users
    transport = virtual_maildir

这将在给定的文件中查找名称,如果找到,则使用命名的传输来传递消息;如果没有找到,则处理将传递到下一个路由器。

运输过程virtual_maildir将是这样的:

virtual_maildir:
    driver = appendfile
    maildir_format
    create_directory = true
    directory_mode = 0700
    directory = /var/spool/virtmail/$local_part
    # or: directory = lsearch;/etc/exim/virtual_users
    user = virtmail
    group = virtmail
    mode = 0660
    mode_fail_narrower = false
    return_path_add
    envelope_to_add
    delivery_date_add

可能需要对一些事情进行一些调整,这是即兴的。exim 的调试输出非常适合追踪问题;用于调试交付中的所有内容

exim -bv -d+all [email protected]

相关内容