AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 131730
Accepted
webwesen
webwesen
Asked: 2010-04-13 11:58:05 +0800 CST2010-04-13 11:58:05 +0800 CST 2010-04-13 11:58:05 +0800 CST

配置 sendmail 以克隆所有外发电子邮件

  • 772

有没有办法配置类似于postfix的sendmail '

[email protected]

?

sendmail
  • 3 3 个回答
  • 2695 Views

3 个回答

  • Voted
  1. Best Answer
    Aleksandar Ivanisevic
    2010-04-15T05:32:24+08:002010-04-15T05:32:24+08:00

    看看这个 milter:http ://www.five-ten-sg.com/sm-archive/

    • 5
  2. rkthkr
    2010-04-15T06:05:14+08:002010-04-15T06:05:14+08:00

    您可以使用 MIMEDefang,查找:add_recipient

    MIMEDefang 位于http://www.mimedefang.org/

    • 1
  3. Alex Dupuy
    2011-12-06T07:51:59+08:002011-12-06T07:51:59+08:00

    我希望找到一个不需要 milter 的解决方案,但似乎这是不可能的。对于仅将电子邮件克隆到特定邮箱(可能是远程邮箱),您可以使用此处其他人建议的 milters;我实际上需要将 SMTP 流克隆到另一个 MTA。我发现最好的解决方案是mailforward milter。不幸的是,它似乎在我们的 Sendmail 环境中不起作用(可能与灰名单​​有关?)

    milter.org上有更完整的可能解决方案列表,包括商业(90 美元)milter-bcc,但由于 milter API 提供了一种添加信封收件人的机制(无需对消息进行任何其他更改),我能够只需编写一个非常小的 milter,为所有消息添加一个固定的收件人,然后接受它们:

    /*
     * Sendmail milter to add an additional (bcc) envelope recipient
     */
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <sysexits.h>
    #include <unistd.h>
    #include <sys/stat.h>
    
    #include "libmilter/mfapi.h"
    
    #ifndef bool
    # define bool   int
    # define TRUE   1
    # define FALSE  0
    #endif /* ! bool */
    
    char *connsock;
    char *bcc;
    
    sfsistat
    bccfi_eom(ctx)
         SMFICTX *ctx;
    {
        if (smfi_addrcpt(ctx, bcc) != MI_SUCCESS)
            fprintf(stderr, "smfi_addrcpt failed\n");
        return SMFIS_ACCEPT;
    }
    
    
    struct smfiDesc bccfilter =
    {
        "add_bcc",  /* filter name */
        SMFI_VERSION,   /* version code -- do not change */
        SMFIF_ADDRCPT,  /* flags */
        NULL,       /* connection info filter */
        NULL,       /* SMTP HELO command filter */
        NULL,       /* envelope sender filter */
        NULL,       /* envelope recipient filter */
        NULL,       /* header filter */
        NULL,       /* end of header */
        NULL,       /* body block filter */
        bccfi_eom,  /* end of message */
        NULL,       /* message aborted */
        NULL,       /* connection cleanup */
    #if SMFI_VERSION > 2
        NULL,       /* unknown SMTP commands */
    #endif /* SMFI_VERSION > 2 */
    #if SMFI_VERSION > 3
        NULL,       /* DATA command */
    #endif /* SMFI_VERSION > 3 */
    #if SMFI_VERSION > 4
        NULL        /* Negotiate, at the start of each SMTP connection */
    #endif /* SMFI_VERSION > 4 */
    };
    
    static void
    usage(prog)
        char *prog;
    {
        fprintf(stderr, "Usage: %s SOCKET_PATH BCC_ADDR\n", prog);
    }
    
    int
    main(argc, argv)
         int argc;
         char **argv;
    {
        char *socket;
        bool rmsocket = FALSE;
        struct stat status;
    
        if (argc != 3)
        {
            usage(argv[0]);
            exit(EX_USAGE);
        }
    
        socket = argv[1];
        bcc = argv[2];
    
        if (smfi_setconn(socket) == MI_FAILURE)
        {
            (void) fprintf(stderr, "smfi_setconn failed\n");
            exit(EX_SOFTWARE);
        }
    
        /* attempt to remove existing socket, if possible */
        if (stat(socket, &status) == 0 && S_ISSOCK(status.st_mode))
        {
            unlink(socket);
        }
    
        if (smfi_register(bccfilter) == MI_FAILURE)
        {
            fprintf(stderr, "smfi_register failed\n");
            exit(EX_UNAVAILABLE);
        }
    
        return smfi_main();
    }
    

    您仍然需要编译和安装它(连同 initscript 或 systemd 单元以在重新启动后 Sendmail 之前启动它)并配置 Sendmail 以使用此 milter,因此与 postfix 中的等效 add_bcc (或“看不见的”路由器相比)仍然相当痛苦Exim 中的配置),但那是您的 Sendmail。

    • 1

相关问题

  • 如何使用远程 SMTP 配置 php.ini?

  • Linux sendmail 垃圾邮件?

  • 使 php mail() 函数在 ubuntu-server 上工作的步骤是什么?

  • 如何配置 sendmail 以拒绝日期标题与实时相差太远的电子邮件?

  • 什么是好的 sendmail 日志分析器?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve