2011-06-03 5 views
5

का उपयोग करके भेजने पर एक ईमेल की विशिष्ट पहचान करें। मैं .NET SmtpClient क्लास (System.Net.Mail में), यानीसिस्टम.Net.Mail

का उपयोग करके भेजे जाने वाले ईमेल को विशिष्ट रूप से पहचानने का एक तरीका ढूंढ रहा हूं।
 SmtpClient client = new SmtpClient(smtpServer, smtpPort); 

     client.EnableSsl = false; 

     MailAddress from = new MailAddress(fromAddress); 
     MailAddress to = new MailAddress(destinationAddress); 

     MailMessage message = new MailMessage(from, to); 

     message.Body = body; 
     message.Subject = subject; 

आदि

मैं message.Headers (एक System.Guid के लिए सेट) का उपयोग कर 'संदेश-आईडी' संपत्ति सेट कर सकते हैं, लेकिन यह smtp सर्वर द्वारा ओवरराइट हो जाता है, और मैं कैसे उपयोग करने के लिए नहीं जानता संदेश आईडी जो smtp सर्वर उत्पन्न करता है।

मुझे पॉप 3 मेलबॉक्स खोलने के लिए क्लाइंट सिस्टम की आवश्यकता है जो ईमेल प्राप्त करता है और इस अद्वितीय पहचानकर्ता द्वारा इसे ट्रैक करने में सक्षम हो।

कोई भी जानता है कि यह संभव है या नहीं?

उत्तर

7

एक विकल्प संदेश पर एक कस्टम शीर्षलेख संलग्न करना है। कस्टम हेडर X- उपसर्ग के साथ संकेतित होते हैं। तो इस मामले में, आप X-Unique-Id नामक एक बना सकते हैं जिसे ओवरराइट नहीं किया जाएगा।

हालांकि, यह आवश्यक नहीं है कि सभी मेल क्लाइंट कस्टम हेडर के आधार पर फ़िल्टरिंग/खोज की अनुमति दें, आपको क्लाइंट की जांच करनी होगी।

प्रति MSDN:

किसी भी कस्टम हेडर जोड़ा होगा जब MailMessage उदाहरण भेज दिया जाता है शामिल थे।

वैसे ही जैसे message.Headers संग्रह में जोड़ें: या से: मूल्य उस संदेश id है

message.Headers["X-Unique-Id"] = "1";

एक अन्य विकल्प के लिए एक विशेष उत्तर दें उपयोग करने के लिए किया जाएगा। जैसे यदि आपका उत्तर पता [email protected] था, तो इसे ऑटो +{unique-id}@responder.net पर बदलें। कई मेल सर्वर (जीमेल समेत) + को वाइल्डकार्ड के रूप में मानेंगे और संदेश को [email protected] को सामान्य के रूप में वितरित करेंगे। यह उपयोगकर्ताओं के माध्यम से इन-ऐप संदेशों को सीधे जवाब देने की अनुमति देने के लिए उपयोग किया जाने वाला एक आम तरीका है।

+0

धन्यवाद, बीमार कोशिश करो। –

1

क्या आप विषय पंक्ति में एक GUID संलग्न कर सकते हैं या इसे ईमेल के शरीर के बहुत अंत में जोड़ सकते हैं? यह उपयोगकर्ता के लिए दृश्यमान होगा लेकिन अगर यह ईमेल के नीचे है (शायद कुछ और जानकारी के साथ) यह रास्ते से बाहर होगा और अभी भी खोज संभव बना देगा।

+2

इससे मुझे लगता है कि कई स्पैम डिटेक्टरों के साथ परेशानी होगी; स्पैमएसासिन, कम से कम, शरीर या विषय में इन ट्रैकिंग कोड के लिए एक नियम है। – mnemosyn

4

"क्लाइंट सिस्टम" से आपका क्या मतलब है, इसके आधार पर, मैं सुझाव दूंगा कि आप X-MyHeader: GUID जैसे ग्राहक शीर्षलेख जोड़ें।

X-Headers मेल सर्वर से बातचीत नहीं करते हैं; इसका उपयोग कई लोकप्रिय मेलिंग टूल द्वारा भी किया जाता है, उदाहरण के लिए mailchimp:

System.Net.Mail.MailMessage m; 
m.Headers.Add("X-MyHeader", Guid.NewGuid()); 
+0

मैं देखता हूं, अगर मैं 'एक्स' के साथ उपसर्ग करता हूं तो smtp सर्वर डिफ़ॉल्ट रूप से अनदेखा कर देगा? –

+1

इसे सही तरीके से रखने के लिए, आरएफसी 822 [http://tools.ietf.org/html/rfc822] कहता है कि कोई भी औपचारिक शीर्षलेख कभी भी 'एक्स-' से शुरू नहीं होगा, इसलिए ये हेडर किसी भी अन्य औपचारिक रूप से प्रकाशित शीर्षलेख से टकरा नहीं जाते हैं । हालांकि, 'एक्स-सेंडर' और 'एक्स-मेलर' का व्यापक रूप से उपयोग किया जाता है। – mnemosyn