繁体   English   中英

Exchange 2007 NDR到公用文件夹

[英]Exchange 2007 NDRs to public Folders

如果目标是公用文件夹,则Exchange删除未送达报告(NDR)。

我想编写一个传输代理(SMTPReceiveAgent,c#)来绕过此行为。 目的是将NDR更改为“普通”邮件,不要通过交换删除。 我测试了一些对此的想法,但没有找到解决方案。 现在我需要帮助。

这里有一些问题:

  1. 识别NDR很容易。

    内容类型:多部分/报告; report-type =交付状态;

    但是,我必须在邮件中更改将其转换为“普通”邮件的内容? 更改为多部分/替代无效或不足。

  2. 或者,我可以创建一条新消息,其中包含从NDR捕获的所有信息。 在SMTReceiveAgents.OnSubmitted事件中执行此操作的最佳方法是什么?

  3. 要为普通用户从公用文件夹NDR创建副本,我尝试了args.Mailitem.Recipients.Add(new RoutingAddress("username@mydomain.com")) 这行不通。 为什么?

有任何答案,提示或解决方案吗?

Exchange 2007 NDR到公用文件夹

Q1。 您确实必须将其更改为多部分/替代,但是,您还应该找到“ Content-Type:消息/传递状态”并将其更改为文本/纯文本,但这不是必需的

Q2。 您可以这样做,但“原始”邮件的唯一选择是拒绝发件人,隔离或允许它。.没有删除/删除选项..但是由于它将进入公用文件夹,因此将其丢弃。

如果走这条路线,则在EndOfHeadersEvent期间枚举标头和正文,然后生成一个新的MailMessage对象,并包括原始的标头和正文

Q3。 那应该行..我能看到它行不通的唯一原因是,如果您尝试发送到服务器上不接受域的外部收件人/域,。如果这就是您要执行的操作,那么您需要使用您的真实外部地址创建一个邮件联系人,然后将NDR抄送给该外部联系人

以下是我能够完成您想要执行的操作的代码。 我挂在onRcpt和onEndOfHeaders上的原因是检查输入的收件人是否是公用文件夹地址。我发现它比枚举末尾的rcpt列表快

NDR保存到公用文件夹

void UserSendCounterSmtpReceiveAgent_OnRcptCommand(ReceiveCommandEventSource source, RcptCommandEventArgs e)
        {
            if(source == null || e == null)
            {
                return;
            }
            String recipient = e.RecipientAddress.ToString();
            if (recipient.Equals("publicfolder@domain.com"))
            {
                this.testOnEndOfHeaders = true;
            }

        }
        void UserSendCounterAgent_OnEndOfHeaders(ReceiveMessageEventSource source, EndOfHeadersEventArgs e)
        {
            if (source == null || e == null)
            {
                return;
            }

                if (testOnEndOfHeaders)
                {
                    this.testOnEndOfHeaders = false;
                    Header obj = e.Headers.FindFirst("Content-Type");
                    if (obj.Value.Equals(@"multipart/report"))
                    {
                        obj.Value = @"multipart/alternative";
                        e.MailItem.Recipients.Add(new RoutingAddress("forwardto@domain.com"));
                    }

                }

        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM