【问题标题】:Forwarding email to distribution list将电子邮件转发到分发列表
【发布时间】:2010-05-27 00:31:02
【问题描述】:

我最近不得不移动服务器。在旧服务器上,我有一个 Mailman listserv 分发列表,但由于新服务器不支持 Mailman,我编写了一个 PHP 脚本来从 IMAP 读取消息并通过 SMTP 重新发送。脚本脆弱(我的错)和复杂(不是我的错):我必须解析每条消息,找到我可以使用的位(如果它是多部分或 HTML 或它有附件),然后重建用于 SMTP 的消息,以便除发件人之外的每个成员都获得一份副本,并且回复是分发列表地址。问题是,我知道消息的原始来源很好。我只需要更改/添加一些标题。

在 Windows 服务器上,您可以配置一个电子邮件投递箱文件夹,您可以在其中保存原始形式的外发邮件消息。 *nix 上有类似的东西吗?我应该看看其他方法吗?

我知道我可以在服务器上设置转发地址,但我真的很喜欢 listserv 系统的行为:发件人不会收到他们自己邮件的副本,主题由列表的标签标识并点击“回复” " 将消息发送回分发列表,而不是原始发件人。

【问题讨论】:

  • 你为什么不使用不同的列表服务器?
  • 我在一个共享主机上,我不太可能被允许安装新软件。也就是说,你有什么软件推荐吗?我认为 Mailman 很棒,虽然管理界面很糟糕。

标签: php linux email sendmail


【解决方案1】:

为了创建您自己的定制列表服务器系统,您需要执行以下操作:

  1. 将您的邮件服务器配置为具有别名,例如 no-reply@yourdomain.com 以将邮件重定向到 black-hole/dev /null 或类似的东西,基本上在到达时删除任何邮件而不向发件人返回 NDR(未送达报告)电子邮件。这是您的脚本在向群组发送电子邮件时将在 To: 标头中使用的地址。

  2. 编写发送到组的 PHP 脚本部分:(a) 首先将所有订阅者从数据库(或安全存储的数据文件)中拉出到一个数组中,(b) 下一步删除来自数组的消息作者的地址,(c) 然后最终以大约 15 个收件人的批次循环遍历数组中的所有剩余订阅者,并使用 To: "Your List Name" <no-reply@yourdomain.comma​​il() 函数发送消息和密件抄送:(密件抄送)字段,以防止收件人看到名单上还有谁。

如果您想尝试一些现有的解决方案,为什么不看看 Majordomo.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 2023-03-03
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    相关资源
    最近更新 更多