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 / 问题 / 39376
Accepted
Parand
Parand
Asked: 2009-07-12 10:35:02 +0800 CST2009-07-12 10:35:02 +0800 CST 2009-07-12 10:35:02 +0800 CST

Postfix 或 exim:自动/程序化和转发电子邮件设置

  • 772

我希望用内部安装来替换我们目前使用的外部 smtp 提供程序。它应该处理以下情况:

  • 某些地址应转发到 gmail 地址;我们希望继续使用 gmail 作为我们的主要电子邮件界面。

  • 其他地址应可用作 pop/imap 邮箱。

  • 其他地址将以编程方式处理:它们将启动各种任务、登录等。这些地址应该启动处理电子邮件地址的过程,或者应该以易于处理的格式存储。

  • 它还应该可以很容易地使用域密钥、spf 以及允许电子邮件传递所需的任何其他内容进行配置。

我在遥远的过去使用过sendmail。如今,似乎 postfix 和 exim 是推荐的选项。我的主要问题是:将地址转发到 gmail 和编程访问的最佳选择和设置是什么?procmail 仍然是要走的路还是现在有更好的选择?

我们正在使用 linux/ubuntu 服务器。

smtp postfix exim
  • 3 3 个回答
  • 1642 Views

3 个回答

  • Voted
  1. Best Answer
    Barney Desmond
    2009-07-12T10:41:26+08:002009-07-12T10:41:26+08:00

    Postfix 是可靠的,得到很好的支持并且易于配置。你描述的所有东西都是相当常规的。

    • 转发:使用 virtual_alias 映射
    • POP/IMAP 邮箱:本地交付,使用 Dovecot 之类的东西作为您的 POP/IMAP 服务器
    • 程序化的东西:如果你的意思是你将邮件提供给脚本,那是从 /etc/aliases 完成的。对于“易于处理”,您有 mbox 和 Maildir 格式,这都是标准的东西。
    • 域密钥/SPF:SPF 在 DNS 中完成。Domain-keys 很容易设置为 milter 或 SMTP 代理。
    • 7
  2. cas
    2009-07-12T18:19:22+08:002009-07-12T18:19:22+08:00

    对于程序化的东西,你必须知道程序/脚本将以什么 UID 运行。

    例如,对于 postfix,从 /etc/aliases(或任何其他 root 拥有的别名文件)运行的脚本将以 'nobody' 用户身份运行。

    postfix 能够拥有多个别名文件,并且(这是好的部分)从别名文件运行的程序将以拥有该文件的用户身份运行(root 除外 - 如前所述,root 拥有的别名文件以无人身份运行)。

    如果您需要以 root 身份从邮件运行脚本,那么最简单的方法(如果您安装了 sudo)是将 sudo 配置为允许“nobody”以 root 身份运行它而无需密码,并从运行的包装脚本运行它它与 sudo。

    注意:无论何时从邮件触发脚本,您都必须记住数据(即邮件)来自不受信任的来源(互联网)......所以使用来自正文或标题的数据是非常不安全的脚本执行的命令的参数。这与在 CGI 脚本中信任用户提供的数据基本相同——只是不要这样做。例如,考虑如果用户提供的数据类似于“... innocuousdatahere ...; rm -rf /”,那么一个写得不好的脚本会做什么。您可能认为检查分号之类的明显内容并将其删除会很容易,但是您还需要检查很多不明显的内容,而您只是为自己做准备失败,因为你不太可能想到或抓住它们。

    无论脚本将以什么 UID 运行,这都很重要,但当/如果它以 root 身份运行时尤其重要。

    最后,要回答您的一个直接问题,procmail 仍然是您想做的有用工具。就像 maildrop 和其他类似的程序一样。将 procmail 等视为解析正文和标题以决定做什么的专用工具,因此您不必在脚本中包含所有解析代码。编写脚本以完成其工作,并使用 procmail 决定何时运行脚本。例如,您可以创建一个名为“mailjobs”的新用户,它有自己的主目录和 .procmailrc 文件。然后创建将邮件转发给该用户的别名。然后,mailjobs 的 .procmailrc 将检查 X-Original-To 标头以确定要运行的脚本。

    • 4
  3. theotherreceive
    2009-07-12T15:09:53+08:002009-07-12T15:09:53+08:00

    exim 和 postfix 都能够满足您的需求,最好的建议是选择最容易使用和/或最熟悉的一个。

    至于处理转发到 gmail 和脚本的最佳方法是使用全局别名文件(通常保存在 /etc/aliases 或 /etc/mail/aliases 中)。

    • 1

相关问题

  • 如何修复“无效”的 SMTP 服务器问题?

  • 如何配置 sendmail 以拒绝日期标题与实时相差太远的电子邮件?

  • 推荐的个人邮件服务器设置 [关闭]

  • 如何使用 Postfix 将邮件中继到另一台机器?

  • 针对大量邮件的 SMTP 服务的建议 [关闭]

Sidebar

Stats

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

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +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