2012-09-20 45 views
1

我有下面的代码,我已经在.Net 4.0中构建,它工作正常,但我现在必须在.Net 3.5中构建项目,并且在创建MailItem时出现错误。该错误信息是: -如何在.NET 3.5中创建Outlook MailItem?

“”不能隐式转换类型 '对象' 到 'microsoft.office.interop.outlook.olmailitem'“

Outlook.Application application = new Outlook.Application(); 

    Outlook.Folder folder = 


     application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderDrafts) 
         as Outlook.Folder; 

    Outlook.MailItem mail = 
        application.CreateItem(Outlook.OlItemType.olMailItem); 

    foreach (string name in addlist) 
       { 
        mail.Recipients.Add(name); 
       } 

    mail.BodyFormat = Outlook.OlBodyFormat.olFormatHTML; 
       mail.HTMLBody = msg; 
       mail.Subject = textBox1.Text; 
       mail.Save(); 

谁能帮助?我努力解决语法问题?

+0

在这行做你的错误? –

+0

为什么使用Outlook interop发送邮件而不是System.Net.Mail? –

+0

我正在使用它,因为我无法访问SMTP信息。用户从他们自己的Outlook帐户发送电子邮件,这并不理想,但我在一个大型组织中工作,在那里访问这样的信息本身就很困难。 – Derek

回答

2

Outlook.Application.CreateItem返回一个对象(动态的,是准确的),你必须明确地将它转换为Outlook.MailItem,像这样:

Outlook.MailItem mail = 
       application.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem;