8

我有一个 postfix 电子邮件服务器,并且有一个我想调试的问题。如何将其配置为将每封电子邮件的副本发送到我的电子邮件(除了将电子邮件传递给其预期收件人)。

4

2 回答 2

11

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

它似乎真的起作用了。更多关于 always_bcc这里

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

于 2015-11-24T14:11:22.627 回答
9

我最近得到了这个工作,所以虽然我会分享:

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

概括

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

  1. 创建用于发送的电子邮件用户帐户

    最简单的方法是为 sent 创建一个新的 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. 为发送的账户创建一个筛子脚本

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

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

    在 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 重新加载

  5. 测试和调试

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

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

于 2012-11-28T17:57:17.017 回答