2012-06-27 16 views
5

निर्दिष्ट करके मैं Outlook के माध्यम से ई-मेल भेजने के लिए इंटरऑप का उपयोग कर रहा हूं, लेकिन मैं ई-मेल पता से निर्दिष्ट करने में सक्षम नहीं हूं।Microsoft.Office.Interop.Outlook.MailItem का उपयोग करके मेल कैसे भेजें, पता से

मैं एक ही प्रेषक (से) से उत्पन्न कई उपयोगकर्ताओं को मेल भेजना चाहता हूं। मुझे ई-मेल पते से उल्लेख करने की आवश्यकता है। हालांकि मुझे इंटेलिसेंस का उपयोग करके एक संपत्ति नहीं मिल रही है जो मुझे इसे निर्दिष्ट करने की अनुमति देती है।

कृपया मदद करें।

Microsoft.Office.Interop.Outlook.Application olkApp1 = 
    new Microsoft.Office.Interop.Outlook.Application(); 
Microsoft.Office.Interop.Outlook.MailItem olkMail1 = 
    (MailItem)olkApp1.CreateItem(OlItemType.olMailItem); 
     olkMail1.To = txtpsnum.Text; 
     olkMail1.CC = ""; 
     olkMail1.Subject = "Assignment note"; 
     olkMail1.Body = "Assignment note"; 
     olkMail1.Attachments.Add(AssignNoteFilePath, 
      Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, 1, 
       "Assignment_note"); 
olkMail1.Save(); 
//olkMail.Send(); 

उत्तर

5

Send विधि डिफ़ॉल्ट खाते का उपयोग कर मेल भेजती है। मेल भेजने के लिए एक अलग खाता निर्दिष्ट करने के लिए, भेजें विधि को कॉल करने से पहले संपत्ति वांछित Account पर सेट करें।

var application = new Application(); 
var mail = (_MailItem) application.CreateItem(OlItemType.olMailItem); 
mail.To = "[email protected]"; 
.... 
Outlook.Account account = Application.Session.Accounts["MyOtherAccount"]; 
mailItem.SendUsingAccount = account; 
mail.Send(); 

अधिक जानकारी यहां पाया जा सकता है:

http://msdn.microsoft.com/en-us/library/ff184652.aspx

+0

मैं अपना मेल कैसे बना सकता हूं और इसे खोल सकता हूं? (एक mailto की तरह?)। मेल को गैर मेल भेजने में सहेजें, लेकिन क्या हमारे पास नया निर्माण मेल वाला विंडो हो सकता है? –

+2

@Zaphod: गैर-मोडल विंडो के रूप में ईमेल प्रदर्शित करने के लिए 'mail.Display (false) 'का उपयोग करें। –

+0

@ रोमन डी। बोइको: आपकी टिप्पणी के लिए धन्यवाद, यही वह है जिसे मैं खोज रहा था। –

12

आप दृष्टिकोण का उपयोग कर रहे मेल भेजने के लिए। चूंकि Outlook को आपके मेल के from पते का उपयोग करने के लिए कॉन्फ़िगर किया जाना चाहिए, इसलिए आप सीधे from पता प्रदान नहीं कर सकते हैं। हालांकि, आप दृष्टिकोण पर उपलब्ध एक खाता चुन सकते हैं। उदाहरण के लिए:

using Outlook = Microsoft.Office.Interop.Outlook; 

Outlook.Accounts accounts = olkApp1.Session.Accounts; 
foreach (Outlook.Account account in accounts) 
{ 
    // When the e-mail address matches, send the mail. 
    if (account.SmtpAddress == "[email protected]") 
    { 
      olkMail1.SendUsingAccount = account; 
      ((Outlook._MailItem)olkMail1).Send(); 
      break; 
    } 
} 
+1

इसका उपयोग करने वाले भाग को शामिल करने के लिए धन्यवाद। मुझे यह खोजने के लिए हमेशा के लिए ले लिया। मुझे यकीन नहीं है कि कैसे डेवलपर्स सामान्य रूप से जानते हैं कि उन्हें किस चीज का उपयोग करने की आवश्यकता है? – Eric

+0

@Eric आप IDISposable लागू करने वाले किसी भी वर्ग के लिए {} ब्लॉक का उपयोग कर कोड कर सकते हैं। जब उपयोग ब्लॉक समाप्त होता है, तो इसमें परिभाषित चर स्वचालित रूप से निपटाया जाता है। – j2associates

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