C#启动邮件客户端

C# start mail client

我正在使用 System.Diagnostics.Process

启动默认邮件客户端
string mailto = string.Format("mailto:{0}?Subject={1}&Body={2}",
                "xxx@xx.xx", Title, TextBlockTechnicalError.Text);
System.Diagnostics.Process.Start(mailto);

但是,电子邮件正文的内容被截断一半way.It没有显示TextBlockTechnicalError中的所有内容。我怎样才能避免这种情况?

我认为这是不可能避免的,因为它由于命令行的最大长度(大约 8k 个字符)而被截断。

如果你知道所有用户都会使用Outlook作为邮件客户端,你可以试试这个方法

public void Mail(string receiver, string subject, string body)
{
  Outlook.Application outlook = System.Diagnostics.Process.GetProcessesByName("OUTLOOK").Length > 0
    ? Marshal.GetActiveObject("Outlook.Application") as Outlook.Application
    : new Outlook.Application();
  Outlook.MailItem mailItem = outlook.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem;
  if (mailItem == null) throw new Exception("Outlook failed!");
  mailItem.To = receiver ?? string.Empty;
  mailItem.Subject = subject;
  mailItem.Body = body;
  mailItem.Display();
}