我有一个程序可以打开新的Outlook电子邮件窗口,其中包含预先填充的,cc,标题和正文。代码遵循此Programmatically Create an E-Mail Item。
这项工作已经好几年了,最近它开始遇到一些用户的问题,当新的电子邮件窗口打开时,发送字段似乎重叠(如下所示)
任何人都知道为什么会这样做?
答案 0 :(得分:1)
尝试重置navpane:
outlook.exe /resetnavpane
答案 1 :(得分:0)
您的Outlook安装可能有缺陷,或者可能是由于您的显示器设置以及Outlook无法处理缩放设置这一事实造成的。
如果从exe
文件手动打开该应用时看起来正常,问题可能出在Office.Interop
API本身。
Process.Start
接近您可以通过命令行参数创建邮件消息并运行该过程本身:
System.Diagnostics.Process.Start(
"C:\\Program Files (x86)\\Microsoft Office\\Office15\\OUTLOOK.EXE",
"/c ipm.note /m hello@example.com"));
Office15
将是Office安装的版本。不幸的是,这种方法无法添加其他字段,如CC等。
mailto:
接近一个很好的选择可能是使用mailto:
协议,因为它不要求用户安装Outlook并且可以与任何电子邮件客户端一起使用,它仍然可以满足您的所有需求。要使用它,您可以构建mailto:
URI,如:
var mailtoUri = "mailto:someone@example.com?subject=This%20is%20the%20subject&cc=someone_else@example.com&body=This%20is%20the%20body"
然后启动该URI以打开用户的默认分配邮件客户端:
var startInfo = new ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.FileName = mailtoUri;
Process.Start(startInfo);
有关mailto:
协议的更多详情,请available on MSDN。