我正在用 php 编写一个邮件列表,并且需要一种强制方法,同时通过 localhost 上的 smtp(Postfix)发送邮件,只是将邮件真正发送到 BCC 接收者。
(有 To 和 Cc 标头在邮件中发送它们,但不将邮件发送给它们)
原因:如果一封邮件被发送到列表中,它是之前发送给那些接收者的;在 php 脚本中,我编辑邮件(删除禁用词,添加带有签出链接等的页脚)并希望通过 smtp 发送它(mail() 不好,它没有错误处理)
有没有任何类或简单的方法可以做到这一点?或者是否可以留在后缀队列中(邮件通过管道传输到 php-script)
我发送的邮件有:mailing.list-adress(因为必须显示邮件已发送到邮件列表)和所有其他 Tos,但脚本不应将它们发送到该地址,它只是应该发送到密件抄送地址。
邮件流是
发件人 => specific-list@server.de => lists@server.de => php-programm => drop
每 5 分钟(或用户指定的其他时间)将推出列表:
数据库中的邮件 => 脚本 => 收件人为密件抄送,收件人为列表地址(特定列表@server.de)
邮件看起来像:
From: original-sender@original-server.org
To: specific-list@server.de, <any other tos from original mail>
Cc: <any ccs from original mail>
Bcc: <all the list subscribers> //JUST REALLY SEND TO THIS ADRESSES
Subject: [Listname | Topicid] Topic Name
Content:
<original content>
--
signature for unsubscribe, etc.
我有一个如何解决这个问题的想法,但需要帮助。
- 我创建了一个内部邮件地址,转发给我的真实收件人
- 我把邮件发到那个地址
- Postfix 必须处理该邮件,而不是作为外发邮件,而是作为递送到该地址的新邮件。
- 因为是收到的邮件,postfix 不会投递给所有其他的 Receiver,它只是投递到那个特定的地址(也就是一个 Forwarding)