无法将附件文件添加到来自c#的电子邮件中

问题描述:

需要使用c#程序中的附件打开电子邮件客户端。无法将附件文件添加到来自c#的电子邮件中

下一个C#样品不能打开电子邮件客户端(Outlook)中与附加的文件,并显示错误信息

命令行参数是无效的。验证使用的开关是 。

[Test] 
public void FileToEmailClient() 
{ 
    string testDataFilePath = @"..\..\Data\test.txt"; 
    Assert.That(File.Exists(testDataFilePath), Is.True); 
    string subject = String.Format("File {0} attached", Path.GetFileName(testDataFilePath)); 
    string body = "body"; 
    string command = String.Format("mailto:?subject={0}&body={1}&attachment=\"{2}\"", subject, body, testDataFilePath); 
    Process.Start(command); 
} 
+0

从一个快速的互联网搜索,前景似乎并不支持附件。另外,您可能需要指定电子邮件地址。 –

+0

从Windows资源管理器中,我可以借助上下文菜单命令“发送到|邮件收件人”打开带有附件的Outlook。所以,我想要实现相同的行为。 – constructor

我不知道,如果“电子邮件地址”是正确的命令,但我认为你应该能够找到答案的Command-line switches for Outlook for Windows

试试这个(请用你的价值观一样的Outlook.exe的路径替换)

var outlookPath = @"C:\Program Files\Microsoft Office 15\root\office15\OUTLOOK.EXE"; 
var command = @"/a ""C:\Temp\Signature.txt"" /m ""[email protected]&[email protected]&subject=subject&body=body"""; 
Process.Start(outlookPath, command); 

Output

+0

如果没有“附件”部分,该命令将起作用:使用定义的主题和正文打开Outlook。但我需要发送带有附件的电子邮件。 – constructor

+0

暂时忽略C#,只需尝试放入命令行,cd到Office目录并尝试使用'/ a'开关将'OUTLOOK.EXE'传递给文件。对我来说,这工作得很好。 –

+0

我尝试从Windows菜单运行mailto:?subject = File test.txt附件&body = body&attachment =“.. \\ .. \\ Data \\ test.txt”并显示相同的错误 – constructor