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 / 问题 / 412982
Accepted
Paul Tomblin
Paul Tomblin
Asked: 2012-08-01 09:54:52 +0800 CST2012-08-01 09:54:52 +0800 CST 2012-08-01 09:54:52 +0800 CST

将一个域的所有电子邮件转发到单个帐户或文件,但正确传送其他域

  • 772

我有一台使用 Postfix 发送电子邮件的 Linux 服务器。它位于动态 ip 上,因此我使用“relayhost”参数通过 ssh 隧道将外发邮件发送到静态 ip 上的另一台服务器,然后从那里发送到现实世界。从 1998 年左右开始,它一直运行良好。

我目前正在为客户开发一些软件,它会根据数据库中的信息向该客户组织中的不同人员发送电子邮件。对于我的初始测试,我创建了假冒的人,他们都拥有 ptomblin+client1@{mydomain}.com 之类的电子邮件地址,它运行良好并将所有电子邮件发送给我。但现在我正在使用实时数据库,所有电子邮件地址都是针对客户组织中的真实人员的。我不是特别想向那些人发送电子邮件,告诉他们他们请求的系统访问权限已配置,因此我想要一种方法来将所有电子邮件重定向到该客户的域到我的电子邮件地址或文件。

linux
  • 2 2 个回答
  • 912 Views

2 个回答

  • Voted
  1. Best Answer
    user130370
    2012-08-01T10:23:08+08:002012-08-01T10:23:08+08:00

    如果我理解正确,您希望所有发往 example.com 的邮件都传送到您的邮件地址或文件,而不是转发到 relayhost 中指定的服务器:

    第一步:在main.cf中添加example.com,mydestination这样发往example.com的邮件就可以在本地投递了。

    第 2 步:为 example.com 设置一个 catchall,并将所有电子邮件发送到您的邮件地址或文件。例如,您可以使用 postfix pcre 来实现这一点。

    扩展步骤 2

    在许多其他方法中,使用 postfix pcre 只是实现此目的的一种方法。根据garisson 的本教程:

    1. 创建本地用户 mylocaluser 及其邮箱或 maildir
    2. 创建一个名为 aliases-pcre 的文件,内容为:

      /@example\\.com$/ mylocaluser
      

      将以下行添加到 main.cf(如果 main.cf 在 /etc/postfix 中):

      alias_database = hash:/etc/postfix/aliases
      alias_maps = hash:/etc/postfix/aliases, pcre:/etc/postfix/aliases-pcre
      
    3. 重启后缀

    现在,所有发往 *@example.com 的邮件都应该转到 mylocaluser mailbox/maildir。

    同样,这只是一个例子。您可以使用最适合您需要的任何其他方法。我倾向于大量使用 pcre,因为它允许使用更复杂的正则表达式。


    但是,以上方法不起作用,因为您需要虚拟域。

    这是一个最小的示例配置:

    (main.cf)
    alias_database = hash:/etc/aliases
    local_recipient_maps = 
    relayhost = myotherserver.example.com
    virtual_alias_maps = pcre:/etc/postfix/aliases-pcre
    virtual_alias_domains = example.com
    mydestination = localhost
    

    文件/etc/postfix/aliases-pcre

    /@example\.com$/ somelocaluser
    
    • 3
  2. Paul Tomblin
    2012-08-01T15:11:38+08:002012-08-01T15:11:38+08:00

    好吧,埃里克让我接近正确的道路,但还不够。这就是我所做的:

    1. 在 /etc/postfix/main.cf 中:

      virtual_alias_domains = example.com
      virtual_alias_maps = regexp:/etc/postfix/virtual_alias
      
    2. 在 /etc/postfix/virtual_alias

      /@example\.com/ ptomblin
      

    一个postfix reload之后,我去参加比赛。(顺便说一句,你不需要postmap对正则表达式文件做,只需要散列)

    • 2

相关问题

  • 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