后缀:将每封电子邮件的副本发送到给定的电子邮件地址

时间:2009-04-16 12:12:24

标签: email smtp postfix-mta

我有一个postfix电子邮件服务器,我想调试一个问题。 如何配置它以将每封电子邮件的副本发送到我的电子邮件(除了将电子邮件发送给目标收件人)。

2 个答案:

答案 0 :(得分:8)

我最近有这个工作,所以虽然我分享:

使用postfix和cyrus imap将所有外发邮件发送到已发送文件夹。

摘要

将后缀发送所有外发电子邮件的密送副本发送到特殊的“已发送” 邮件帐户。使用此特殊帐户筛选重定向所有电子邮件 到与帐户关联的已发送文件夹。

  1. 为已发送的

    创建电子邮件用户帐户

    最简单的方法是为发送的新的unix帐户创建, 将shell设置为/ bin / false以防止任何人能够记录 在:

    host$ sudo useradd sent
    host$ sudo chsh -s /bin/false sent
    
  2. 为发送的用户设置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
    
  3. 为已发送的帐户创建筛选脚本

    此脚本会将所有传入的电子邮件重定向到已发送的帐户 发件人收件箱中的已发送文件夹。

    我的脚本名为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
    
  4. 设置postfix的密件抄送映射

    在postfix目录(/ etc / postfix on debian)上创建一个名为的文件 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

  5. 测试和调试

    发送一些电子邮件并检查它是否已复制到“已发送”文件夹中。

    如果出现问题,您应该检查cyrus和postfix日志 (全部登录到我的debian主机上的/var/log/syslog)。错别字 访问权限通常会导致一些线索被发送到 日志。

答案 1 :(得分:3)

只需在/etc/postfix/main.cf中添加always_bcc=youremail@gmail.com并重新启动postfix服务器即可。我在底部添加了这一行。

它似乎真的有效。有关always_bcc here

的更多信息

请不要忘记先备份此文件。