AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 426013
Accepted
rolinger
rolinger
Asked: 2012-09-11 07:45:36 +0800 CST2012-09-11 07:45:36 +0800 CST 2012-09-11 07:45:36 +0800 CST

从多个 POP 服务器检索哪个服务器软件和配置,按地址路由到正确的用户

  • 772

我正在 Debian 机器上设置一个小型电子邮件服务器,它需要从各种 POP 服务器接收邮件,并根据地址确定将邮件发送给谁,但我不清楚什么软件可以满足我的需要,虽然这看起来是一个非常简单的问题!

例如,我有 2 个用户,Alice 和 Bob。
任何发往[email protected]([email protected] 等)的邮件都应该发给 Alice,所有其他发给 domain.example.com 的邮件都应该发给 Bob。任何发往 [email protected] 的邮件都应该发给 Bob,而 [email protected] 应该发给 Alice

这个想法是将多年来建立的大量邮件地址集中在一起,并将它们全部呈现为 Bob 的一个邮箱和 Alice 的另一个邮箱。

我期待像 Postfix + Dovecot + Amavis + Spamassassin + Squirrelmail 这样的东西符合要求,但我不确定上面的内容是从哪里来的,Postfix 可以将它作为一组定义的正则表达式来处理,还是它是一个工作对于 Amavis,还是完全不同的东西?在这个组合中我是否需要 fetchmail,或者它的角色现在包含在上面的其他组件之一中。

我认为它是内容过滤,但我读到的有关内容过滤的所有内容都集中在检测垃圾邮件而不是路由电子邮件。

linux
  • 3 3 个回答
  • 135 Views

3 个回答

  • Voted
  1. Janne Pikkarainen
    2012-09-11T07:53:35+08:002012-09-11T07:53:35+08:00

    毁灭对于这种巫术来说是极好的。

    • 1
  2. Sven
    2012-09-11T07:57:13+08:002012-09-11T07:57:13+08:00

    您可以将邮件从 fetchmail 送入 Postfix,然后使用其别名和虚拟地图配置 Postfix 以将它们放入正确的帐户或进一步转发它们。

    Dovecot 可用于存储邮件并在之后通过 IMAP 访问邮件,但这是另一个问题。

    Amavis 和 Spamassasin 不属于此 - Amavis 是一个病毒扫描程序界面,而 Spamassasin 是一个垃圾邮件过滤器。两者都应该是您安装的一部分,但它们不会导致您概述的问题。

    • 1
  3. Best Answer
    rolinger
    2012-10-23T01:26:20+08:002012-10-23T01:26:20+08:00

    我找到了最简单的方法,希望这对其他人有帮助......

    我已经决定从 fetchmail+postfix 开始,因为一旦我发现了fetchmail multidrop,我就有了正确的术语来开始!

    在我的 /etc/fetchmailrc 中,我有多个这样的部分,每个 ISP 一个,我仍然使用它来发送电子邮件

    poll [one ISP's mailserver] protocol POP3
      aka [domain name this needs to pick up for from this mailserver]
      aka [other domain name this needs to pick up for from this mailserver]
      envelope Envelope-to
      user "[my login name on mailserver]" there with password "[my password on mailserver"]
      is * here
      smtpaddress [ISPOne (this is appended to all emails passed on to postfix)]
    

    这从 ISP 获取邮件并将其发送到我的本地后缀。

    “smtpaddress”位是最难找到的,看起来没有多少人写过使用它。没有它(最终发现隐藏在 fetchmail 文档中的普通视图中!),来自所有 ISP 的所有邮件都将域替换为 localhost,因此我无法从不同的 ISP 进行不同的路由。例如,在一个域上,我想捕获所有邮件以进行垃圾邮件处理,而在另一个域上,我可以无情地丢弃任何不需要的地址。

    然后在我的后缀配置中,我创建 /etc/postfix/virtual-regexp 像这样的行

    # Main users, any mail prefixed by a local user and my choice of separator (- or _)
    # is delivered to that local user
    /^(alice|bob)(-.+|_.+|)@.*$/ $1@localhost
    
    # Standard addresses routing
    /^(postmaster|root|abuse)@ISPTwo$/   bob@localhost
    /^(mail|sales)@ISPTwo$/   bob@localhost
    # simple routing of local users without suffixes from ISPTwo
    /^alice@ISPTwo$/ alice@localhost
    /^bob@ISPTwo$/ bob@localhost
    # fall through to catch-all while I check it
    /^.*@ISPTwo$/ bob@localhost
    

    然后运行

     sudo postmap /etc/postfix/virtual-regexp
    

    创建 /etc/postfix/virtual-regexp.db 最后将以下行添加到 /etc/postfix/main.cf

    virtual_maps = regexp:/etc/postfix/virtual-regexp
    

    最后,重新启动/重新加载 postfix 以使用新配置。

    当(不是如果!)你精心制作的正则表达式都出错时,好好利用

    sudo postmap -q "bob_and-alice@ISPTwo" regexp:/etc/postfix/virtual-regexp
    

    它会回复您的正则表达式文件中的目标路由。实际上,明智的管理员会在应用它们之前使用它来测试设置,但我直到遇到问题才发现它!

    以上对我有用,邮件路由在它应该的地方,并在 dovecot 上发射 IMAP 传递,希望它也能帮助其他人!

    • 1

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve