5

मैं वर्तमान में एक एक्सचेंज 2007 परिवहन एजेंट लिख रहा हूँ किसी प्रेषक के सभी बाहर जाने वाले मेल में कुछ हेडर को बदलने के लिए वाले SMTP हेडर का संपादन। मैं सफलतापूर्वक 'से' एसएमटीपी हेडर को प्रतिस्थापित करने में कामयाब रहा, लेकिन 'रिटर्न-पथ' हेडर को फिर से लिखना काम नहीं कर रहा है।एक Exchange 2007 परिवहन एजेंट

यह सब होने बनाने के लिए, मैं एक कस्टम SmtpReceiveAgent लिखा गया है और इस तरह OnEndOfData घटना की सदस्यता है

private static void MyAgent_OnEndOfData(ReceiveMessageEventSource source, EndOfDataEventArgs e) 
     { 

      try 
      { 
       var address = e.MailItem.Message.From.SmtpAddress; 
       if (address.ToLower().EndsWith("[internal email domain]")) 
       { 
        // replace the From: header - WORKING FINE! 
        e.MailItem.Message.From = new EmailRecipient("[displayname]", 
                   "[email address]"); 

        // replace the Return-Path: header - NOT WORKING! 
        var headerList = e.MailItem.Message.RootPart.Headers; 
        var header = (AddressHeader)headerList.FindFirst("Return-Path"); 
        var newheader = new AddressHeader("Return-Path") { Value = "[email address" }; 
        headerList.ReplaceChild(newheader, header); 
       } 
      } 
      catch (Exception ex) 
      { 
       // do something useful here 
      } 

     } 

उत्तर

4

RFC के अनुसार, वापसी के पथ हैडर प्राप्तकर्ता के SMTP सर्वर द्वारा सेट किया जा माना जाता है। यदि ईमेल में रिटर्न-पथ हेडर मौजूद है, तो इसे हटाया जाना है, और प्राप्तकर्ता के सर्वर द्वारा रीसेट करना है।

हो सकता है कि आप देख रहे हैं, RFC की सही कार्यान्वयन है।

1

मुझे यकीन है कि नहीं कर रहा हूँ, लेकिन यह लग रहा है कि आप को बदलने जा करने के लिए "चाहते हो सकता है की तरह उत्तर दें "हेडर और नहीं" वापसी-पथ "। "रिटर्न-पथ" सर्वर द्वारा सेट किया जाना है।

+0

मैं वास्तव में रिटर्न-पथ शीर्षलेख बदलना चाहता हूं। मैं सर्वर के डिफ़ॉल्ट व्यवहार को ओवरराइड करने का एक तरीका ढूंढ रहा हूं। मैंने परिवहन नियमों को भी देखा लेकिन वे मेरी मदद नहीं कर सके। –

संबंधित मुद्दे