Microsoft.Win32.RegistryKey rKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(@"mailto\shell\open\command");        if (rKey != null)
        {
            string path = rKey.GetValue("").ToString() + " ";
            path = path.Substring(0, path.IndexOf(" "));
            path = path.Replace("\"", "");            rKey.Close();
            try
            {
                System.Diagnostics.Process.Start(path, string.Format("-c IPM.Note /m [email protected]&subject=Hello&body={0} ", "<HTML><BODY>11111</BODY></HTML>"));
            }
            catch
            {
            }使用以上代码调用OutLook,但是为什么邮件内容显示的是<HTML><BODY>11111</BODY></HTML>,而不是11111;

解决方案 »

  1.   

    Microsoft.Win32.RegistryKey rKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(@"mailto\shell\open\command");
     
            if (rKey != null)
            {
                string path = rKey.GetValue("").ToString() + " ";
                path = path.Substring(0, path.IndexOf(" "));
                path = path.Replace("\"", "");
     
                rKey.Close();
                try
                {
                    System.Diagnostics.Process.Start(path, string.Format("-c IPM.Note /m [email protected]&subject=Hello&body={0} ", "111111111"));
                }
                catch
                {
                }
      

  2.   

    好吧,可能我说的不太清楚
    我的目的是想要body部分能够支持HTML的格式。
      

  3.   


     MailMessage message = new MailMessage();
     message.IsBodyHtml = true;
      

  4.   


     MailMessage message = new MailMessage();
     message.IsBodyHtml = true;你好,用你这个方法好像是会直接发送吧,能做到弹出OutLook,让用户自己点发送吗?
      

  5.   


     MailMessage message = new MailMessage();
     message.IsBodyHtml = true;你好,用你这个方法好像是会直接发送吧,能做到弹出OutLook,让用户自己点发送吗?如果是直接调用进程,打开outlook,正文部分显示为HTML,这个跟代码就没太大关系了,在outlook里面自己设置看看。
      

  6.   


     MailMessage message = new MailMessage();
     message.IsBodyHtml = true;你好,用你这个方法好像是会直接发送吧,能做到弹出OutLook,让用户自己点发送吗?如果是直接调用进程,打开outlook,正文部分显示为HTML,这个跟代码就没太大关系了,在outlook里面自己设置看看。你的意思是指,代码支持不了吗
      

  7.   

    你要做到你需要的目的,你应该是调用Outlook的互操作程序集的方式来使用了,即你可以右键你的项目,添加引用,找到Microsoft.Office.Interop.Outlook.dll这个程序添加,然后实现发送邮件的功能参考下面:
    http://msdn.microsoft.com/zh-cn/library/ff865634.aspx
      

  8.   

    同样的问题,这个是弹出OutLook后让用户自己发送给邮件;还是会自动发送邮件?我需要的是前者。
      

  9.   

    同样的问题,这个是弹出OutLook后让用户自己发送给邮件;还是会自动发送邮件?我需要的是前者。
    你调用Send方法就会自动发送了,如果你设置一个按钮,让用户点按钮,然后在按钮的处理方法后面调用Send方法就是用户自己发送啊,最好你还是试试先
      

  10.   

    同样的问题,这个是弹出OutLook后让用户自己发送给邮件;还是会自动发送邮件?我需要的是前者。
    你调用Send方法就会自动发送了,如果你设置一个按钮,让用户点按钮,然后在按钮的处理方法后面调用Send方法就是用户自己发送啊,最好你还是试试先谢谢,我知道你的意思,但是我要的是弹出OutLook,用户在OutLook的发送界面,自己点发送。
      

  11.   

    同样的问题,这个是弹出OutLook后让用户自己发送给邮件;还是会自动发送邮件?我需要的是前者。
    你调用Send方法就会自动发送了,如果你设置一个按钮,让用户点按钮,然后在按钮的处理方法后面调用Send方法就是用户自己发送啊,最好你还是试试先谢谢,我知道你的意思,但是我要的是弹出OutLook,用户在OutLook的发送界面,自己点发送。
    这个建议一个VSTO项目就可以了,就是建立Outlook 插件项目类型,具体看看这个博客:
    http://www.cnblogs.com/zhili/archive/2013/03/10/VSTOOutlook.html