我有一个postfix邮件服务器,需要调试其中的一个问题。 如何配置它将每封电子邮件的副本发送到我的电子邮件(除了将电子邮件交付给其预期的收件人)。
我有一个postfix邮件服务器,需要调试其中的一个问题。 如何配置它将每封电子邮件的副本发送到我的电子邮件(除了将电子邮件交付给其预期的收件人)。
只需在 /etc/postfix/main.cf 中添加always_bcc=youremail@gmail.com
,然后重新启动 postfix 服务器。我已将此行添加到底部。
似乎确实有效。有关 always_bcc 的更多信息,请点击这里
请不要忘记先备份此文件。
最近我让这个工作起来了,所以想分享一下:
使用Postfix和Cyrus IMAP将所有发件箱中的电子邮件发送到已发送文件夹。
概述
让Postfix发送所有外发邮件的BCC副本到一个特殊的“sent”邮件帐户。在该特殊帐户上使用筛选器将所有电子邮件重定向到与该帐户关联的“Sent”文件夹。
为已发送邮件创建电子邮件用户帐户
最简单的方法是创建一个新的Unix帐户来发送邮件,将shell设置为/bin/false以防止任何人登录:
host$ sudo useradd sent
host$ sudo chsh -s /bin/false sent
为已发送用户设置imap
使用cyradm,我们创建一个新邮箱(即用户),并为该用户授予向我们所有imap“Sent”文件夹添加的权限:
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
为发送的账户创建筛选脚本
这个脚本会将所有发往发送账户的邮件,重定向到发件人收件箱中的已发送文件夹。
我的脚本名叫sent.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 设置 bcc 映射
在 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
将以下行添加到 postfix main.cf 配置文件中:sender_bcc_maps = hash:/etc/postfix/bcc_map
让 postfix 重新加载其配置:
主机 $ sudo /etc/init.d/postfix reload
测试和调试
发送一些电子邮件并检查它是否被复制到您的已发送文件夹中。
如果出现问题,您应该检查 cyrus 和 postfix 日志
(在我的 Debian 主机上所有日志都记录在 /var/log/syslog
中)。 拼写错误和不正确的访问权限通常会导致某些提示被发送到日志中。