后缀:将每封电子邮件的副本发送到给定的电子邮件地址
Posted
技术标签:
【中文标题】后缀:将每封电子邮件的副本发送到给定的电子邮件地址【英文标题】:postfix: send a copy of every email to a given email address 【发布时间】:2010-10-19 20:14:18 【问题描述】:我有一个 postfix 电子邮件服务器,我想调试一个问题。 如何将其配置为将每封电子邮件的副本发送到我的电子邮件(除了将电子邮件传递给其预期收件人)。
【问题讨论】:
serverfault.com/questions/407302/… 有更好的答案,因为它使用了 postfix 提供的功能。 【参考方案1】:我最近得到了这个工作,所以虽然我会分享:
使用 postfix 和 cyrus imap 将所有外发邮件发送到已发送文件夹。
总结
使后缀将所有外发电子邮件的密件抄送副本发送到特殊的“已发送” 邮件帐户。在这个特殊帐户上使用筛子来重定向所有电子邮件 到与帐户关联的已发送文件夹。
创建用于发送的电子邮件用户帐户
最简单的方法是创建一个新的 unix 帐户用于发送, 将 shell 设置为 /bin/false 以防止任何人登录 在:
host$ sudo useradd sent
host$ sudo chsh -s /bin/false sent
为发送用户设置 imap
使用 cyradm 我们创建一个新邮箱(即用户)并给该用户追加 访问我们所有的 imap “已发送”文件夹:
host$ $ cyradm -user cyrus localhost
Password: <enter you cyrus user admin password here>
localhost> createmailbox user.sent
localhost> setaclmailbox user.%.Sent sent append
Setting ACL on user.userx.Sent...OK.
Setting ACL on user.usery.Sent...OK.
. . .
Setting ACL on user.userz.Sent...OK.
localhost> exit
为发送的账户创建一个筛选脚本
此脚本会将所有收到的电子邮件重定向到已发送的帐户, 发件人收件箱中的已发送文件夹。
我的脚本名为 send.sieve,看起来像这样:
# Sieve script for sent. If outgoing email is bcc'ed to this account,
# this sieve script will redirect it to the sender's Sent folder
require ["fileinto"];
if address :is :localpart "From" "userx"
fileinto "user.userx.Sent";
elsif address :is :localpart "From" "usery"
fileinto "user.usery.Sent";
elsif address :is :localpart "From" "userz"
fileinto "user.userz.Sent";
您需要为每个用户(userx、usery、 userz 在上面的例子中)。我没能 找到更好的方法来做到这一点。欢迎提出建议 marc@bloodnok.com
像这样安装筛子脚本:
host$ sieveshell localhost -user=sent -a=cyrus
Password: <enter you cyrus user admin password here>
> put sent.sieve
> activate sent.sieve
> quit
为后缀设置密件抄送映射
在 postfix 目录(debian 上的 /etc/postfix)中创建一个名为 bcc_map 看起来像这样:
# copy all locally sent mail to the sent account
@yourdomain.com sent@yourdomain.com
使用以下方法将其编译为后缀哈希文件:
host$ sudo postmap bcc_map
将以下行添加到后缀 main.cf 配置文件中:
sender_bcc_maps = hash:/etc/postfix/bcc_map
并让 postfix 重新加载其配置:
host$ sudo /etc/init.d/postfix reload
测试和调试
发送一些电子邮件并检查它是否已复制到您的已发送文件夹中。
如果出现问题,您应该检查 cyrus 和 postfix 日志
(全部登录到我的 debian 主机上的/var/log/syslog
)。错别字和不正确
访问权限通常会导致一些线索被发送到
日志。
【讨论】:
【参考方案2】:只需在 /etc/postfix/main.cf 中添加 always_bcc=youremail@gmail.com
并重新启动 postfix 服务器。我在底部添加了这一行。
它似乎确实有效。更多关于 always_bcc here
请不要忘记先备份此文件。
【讨论】:
像魅力一样工作。这应该是公认的答案!以上是关于后缀:将每封电子邮件的副本发送到给定的电子邮件地址的主要内容,如果未能解决你的问题,请参考以下文章
如何强制 Google App Script MailApp.sendEmail 在循环中为每封电子邮件使用新线程?