2012-03-16 9 views

उत्तर

28

तरह त्रुटि आप एक से अधिक प्राप्तियों निर्दिष्ट करने के लिए MailAddress निर्माता उपयोग नहीं कर सकते, लेकिन आप के रूप में नीचे

... 
MailMessage mail = new MailMessage(); 
mail.To.Add("[email protected],[email protected],[email protected]"); 
... 

से पता चला है एक और तरीका है MailMessage वस्तु का उपयोग करना होगा:

MailMessage msg = new MailMessage(); 
msg.To.Add("[email protected]"); 
msg.To.Add("[email protected]"); 
msg.To.Add("[email protected]"); 
msg.To.Add("[email protected]"); 
+0

अंतर और तुम्हारा क्या अंतर है? –

+0

देखें मुझे यह पता है लेकिन कन्स्ट्रक्टर में खुद को कैसे सेट किया जाए? –

+0

उसकी शुरुआत के लिए MailMessage ऑब्जेक्ट है। मैंने वास्तव में मेरे जवाब में इसका थोड़ा सा समझाया है। सरल जवाब यह है कि 'mail.To' एक 'MailAddressCollection' है जो एकाधिक ई-मेल पते की अनुमति देता है। 'मेल एड्रेस' में केवल एक ही पता होता है (तथ्य यह है कि इसका एकवचन आपको याद रखने में मदद कर सकता है)। – Chris

2

कोई प्रश्न हो सकता है कि आप ऐसा क्यों करना चाहते हैं? MailMessage.To की तरह कुछ MailAddressCollection है जिसका Add विधि को एक स्ट्रिंग में एकाधिक ई-मेल पते लेने के लिए अधिभारित किया जाता है, जिसे अल्पविराम से अलग किया जाता है (http://msdn.microsoft.com/en-us/library/ms144695.aspx देखें)।

मेलएड्रेस ऑब्जेक्ट्स के लिए सामान्य उपयोग उन्हें ई-मेल में जोड़ना है और यदि आपके पास एकाधिक पते हैं तो मुझे लगता है कि आप उन्हें टू, सीसी इत्यादि फ़ील्ड में जोड़ना चाहते हैं, जिसमें अतिरिक्त अधिभार करना चाहिए तुम अच्छी तरह से यदि कुछ और है तो आपको जो भी करने की कोशिश कर रहे हैं उसके लिए आपको अधिक संदर्भ प्रदान करना होगा।

+0

कारण है कि मैंने पूर्वनिर्धारित कोड है जिसे मुझे बदलने की आवश्यकता नहीं है। तो क्या मेलड्रेस कॉन्स्टक्टर के अंदर कई आईडी जोड़ना संभव है या नहीं? –

+0

नहीं, आप नहीं कर सकते। एक 'MailAddress' ऑब्जेक्ट एक मेल पता के लिए है। http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress.aspx वह दस्तावेज़ हैं जो ऑब्जेक्ट पर आपके किसी भी अन्य प्रश्न का उत्तरपूर्वक जवाब देना चाहिए। – Chris

18

दरअसल, अर्धविराम वैध डेलीमीटर नहीं है। दुर्भाग्यवश, एमएसडीएन इस पर दस्तावेज नहीं करता है, इसे स्वयं ही ढूंढना था।

यदि आप अधिक पते जोड़ना चाहते हैं, तो उन्हें अल्पविराम से विभाजित करें। और स्थान डिस्प्ले नाम और ईमेल पता विभाजित करेगा। "प्रति" संपत्ति स्वीकार करता है निम्न स्वरूपों:

आदि ...

मैं इस विषय के बारे में अधिक लिखा in this blog post

+1

आपके आखिरी उदाहरण में, "नाम ईमेल@server1.com, [email protected]" ', मेलमेसेज एक परीक्षण की व्याख्या कर रहा था जिसे मैंने ईमेल उपसर्ग के रूप में" नाम ईमेल "के रूप में किया था। मुझे ऐसा करना था: '' एडम मिलर <[email protected]> "' –

0

@Tschareck

"एक अल्पविराम मेल पतों की एक सूची में तत्वों को अलग करने के लिए किया जाता है। नतीजतन, सूची में निर्विवाद प्रदर्शन नामों में एक अल्पविराम का उपयोग नहीं किया जाना चाहिए। (;) निम्नलिखित मेल पते अर्धविराम के बजाय विभाजक के रूप में, की अनुमति दी जायेगी "में http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress.aspx

सादर Anarud

1

अल्पविराम का उपयोग करें (,)।

यदि एक से अधिक ई अर्धविराम चरित्र (";") से अलग मेल पते पते पैरामीटर में पारित होते हैं। एक प्रारूप अपवाद अपवाद उठाया जाता है।

उदाहरणों में काम

MailAddressCollection.Add (स्ट्रिंग):

using (MailMessage msg = new MailMessage()) 
{ 
    ... 
    msg.To.Add("[email protected], [email protected]"); 
    ... 
} 

MailAddressCollection.Add (MailAddress):

using (MailMessage msg = new MailMessage()) 
{ 
    ... 
    msg.To.Add(new MailAddress("[email protected]", "Vetrivelmp")); 
    msg.To.Add(new MailAddress("[email protected]", "Vetrivelmp1")); 
    ... 
} 
-2

यह मेरे लिए काम करता है।

MailMessage m_message = new MailMessage(); 
    string m_addys = "[email protected],[email protected]"; 
    m_message.To.Add(m_addys); 
+0

ऐसा नहीं करता जो आपको लगता है कि ऐसा करता है। यह केवल [email protected] पर ईमेल भेजता है, और व्यक्ति का नाम [email protected] –

+0

के रूप में दिखाई देगा आप सही हैं। यह इस तरह होना चाहिए: "addy2 @ foo.com, addy1 @ foo.com"। और यह एक स्ट्रिंग है जो मेल एड्रेस नहीं है। – smoore4

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