C#启动邮件客户端

时间:2015-11-20 10:45:03

标签: c# process mailto system.diagnostics

我正在使用System.Diagnostics.Process

启动默认邮件客户端
jmap -heap `ps -ef | grep java | grep -v grep | awk '{print $2}'` | grep -i Metaspace

然而,电子邮件正文的内容是中断的一半。它没有显示TextBlockTechnicalError中的所有内容。我怎么能避免这个?

1 个答案:

答案 0 :(得分:1)

我认为不可能避免这种情况,因为它会因命令行的最大长度而被切断(大约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();
}