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();
}
我正在使用 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();
}