C# 无法从c向电子邮件添加附件文件#

C# 无法从c向电子邮件添加附件文件#,c#,windows,email,attachment,C#,Windows,Email,Attachment,需要打开带有c#程序附加文件的电子邮件客户端 下一个c#示例无法打开带有附加文件的电子邮件客户端(Outlook)并显示错误消息 命令行参数无效。验证您正在安装的交换机 使用 我不确定“mailto”是否是正确的命令,但我认为您应该能够在上找到答案 尝试此操作(请替换为Outlook.exe路径等值) 如果没有“附件”部分,则该命令有效:打开具有定义主题和正文的Outlook。但我需要发送带有附加文件的电子邮件。暂时忽略C,然后尝试将其放到命令行,cd'ing转到Office目录,然后尝试运行O

需要打开带有c#程序附加文件的电子邮件客户端

下一个c#示例无法打开带有附加文件的电子邮件客户端(Outlook)并显示错误消息

命令行参数无效。验证您正在安装的交换机 使用

我不确定“mailto”是否是正确的命令,但我认为您应该能够在上找到答案

尝试此操作(请替换为Outlook.exe路径等值)


如果没有“附件”部分,则该命令有效:打开具有定义主题和正文的Outlook。但我需要发送带有附加文件的电子邮件。暂时忽略C,然后尝试将其放到命令行,
cd
'ing转到Office目录,然后尝试运行
OUTLOOK.EXE
,并使用
/a
开关将文件传递给它。对我来说,效果很好。我尝试了Windows菜单中的下一个命令运行mailto:?subject=File test.txt attached&body=body&attachment=“..\\\\\\Data\\test.txt”和相同的错误。请尝试从运行命令运行此命令
“C:\Program Files\Microsoft Office 15\root\office15\OUTLOOK.EXE”/a“C:\Temp\Signature.txt”/m"to@me.com&抄送=cc@me.com&主题=主题&主体=主体“
假设这是outlook exe的正确路径,并且您的C驱动器中有名为Temp的文件夹,其中有名为Signature.txt的文件。我不想调用outlook.exe,我想通过快速internet搜索打开默认电子邮件客户端,outlook似乎不支持附件。此外,您可能还需要指定电子邮件地址。在Windows资源管理器中,我可以借助上下文菜单命令“发送到|邮件收件人”打开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);
}
var outlookPath = @"C:\Program Files\Microsoft Office 15\root\office15\OUTLOOK.EXE";
var command = @"/a ""C:\Temp\Signature.txt"" /m ""to@me.com&cc=cc@.com&subject=subject&body=body""";
Process.Start(outlookPath, command);