PJW*_*PJW 13 c# outlook winforms
我有一个winforms应用程序,我正在尝试创建一个方法,将创建和打开一个新的Outlook电子邮件.到目前为止我有
private void CreateOutlookEmail()
{
try
{
Outlook.MailItem mailItem = (Outlook.MailItem)
this.CreateItem(Outlook.OlItemType.olMailItem);
mailItem.Subject = "This is the subject";
mailItem.To = "someone@example.com";
mailItem.Body = "This is the message.";
mailItem.Importance = Outlook.OlImportance.olImportanceLow;
mailItem.Display(false);
}
catch (Exception eX)
{
throw new Exception("cDocument: Error occurred trying to Create an Outlook Email"
+ Environment.NewLine + eX.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
但是'CreateItem'引用带有错误消息的下划线
"不包含CreateItem的定义"
我认为'CreateItem'是MS Office项目的标准方法,但不可否认的是,我确实在其他网站上找到了上述代码并简单地复制了它.
我有什么误会吗?
luk*_*sen 28
想一想.您正在调用当前对象CreateItem上的方法this.你CreateItem在这个课程中定义了这个方法吗?
而不是你的:
Outlook.MailItem mailItem = (Outlook.MailItem) this.CreateItem(Outlook.OlItemType.olMailItem);
Run Code Online (Sandbox Code Playgroud)
你需要这些台词:
Outlook.Application outlookApp = new Outlook.Application();
Outlook.MailItem mailItem = (Outlook.MailItem) outlookApp.CreateItem(Outlook.OlItemType.olMailItem);
Run Code Online (Sandbox Code Playgroud)
您可以创建Outlook应用程序的实例,您可以在其上调用该CreateItem方法.
还有两件事可以使这项工作正常进行.
1)将Microsoft.Office.Interop.Outlook包的引用添加到项目中
2)确保您的班级中有适当的使用声明
using Outlook = Microsoft.Office.Interop.Outlook;
Run Code Online (Sandbox Code Playgroud)
试试这个
string subject = "My subject";
string emailTag = string.Format("mailto:someone@test.com?subject={0}", subject);
System.Diagnostics.Process.Start(emailTag);
Run Code Online (Sandbox Code Playgroud)
小智 6
根据我的经验,Office.Interop 可能很麻烦,简单地使用适当的参数启动 Outlook 可能代表一个更简单、更便携的选项:
System.Diagnostics.Process.Start("C:\\Program Files (x86)\\Microsoft Office\\Office12\\OUTLOOK.EXE", "/c ipm.note /m name@address.com"));
Run Code Online (Sandbox Code Playgroud)
Outlook 命令行开关为您提供了更多信息来源的更多选项(尝试http://www.outlook-tips.net/how-to/using-outlook-command-lines)
| 归档时间: |
|
| 查看次数: |
31788 次 |
| 最近记录: |