当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《后缀:将每封电子邮件的副本发送到给定的电子邮件地址》经验,为你挑选了1个好方法。

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



1> 小智..:

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

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

摘要

使postfix将所有外发电子邮件的bcc副本发送到特殊的"已发送"邮件帐户.使用此特殊帐户筛选将所有电子邮件重定向到与该帐户关联的已发送文件夹.

    创建已发送的电子邮件用户帐户

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

    host$ sudo useradd sent
    host$ sudo chsh -s /bin/false sent
    

    为发送的用户设置imap

    使用cyradm我们创建一个新邮箱(即用户),并让该用户附加访问我们所有的imap"已发送"文件夹:

    host$ $ cyradm -user cyrus localhost
    Password: 
    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: 
    > put sent.sieve
    > activate sent.sieve
    > quit
    

    设置postfix的密件抄送映射

    在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重新加载其配置:

    host $ sudo /etc/init.d/postfix reload

    测试和调试

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

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

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有