c#使用Process.Start发送电子邮件

时间:2014-10-16 12:00:40

标签: c# email outlook

我想使用默认电子邮件应用程序发送没有附件的简单电子邮件。

我知道可以使用Process.Start完成,但我无法让它工作。以下是我到目前为止的情况:

string mailto = string.Format("mailto:{0}?Subject={1}&Body={2}", "to@user.com", "Subject of message", "This is a body of a message");
System.Diagnostics.Process.Start(mailto);

但它只是打开带有预写文本的Outlook消息。我想直接发送这个,而无需用户手动点击"发送"按钮。我错过了什么?

谢谢

3 个答案:

答案 0 :(得分:5)

你需要这样做:

string mailto = string.Format("mailto:{0}?Subject={1}&Body={2}", "to@user.com", "Subject of message", "This is a body of a message");
mailto = Uri.EscapeUriString(mailto);
System.Diagnostics.Process.Start(mailto);

答案 1 :(得分:3)

我不确定Process.Start()这可能始终只在默认的Mail-App中打开邮件而不是自动发送。

但可能有两种选择:

答案 2 :(得分:0)

你需要这样做:

            SmtpClient m_objSmtpServer = new SmtpClient();
            MailMessage objMail = new MailMessage();
            m_objSmtpServer.Host = "YOURHOSTNAME";
            m_objSmtpServer.Port = YOUR PORT NOS;

            objMail.From = new MailAddress(fromaddress);
            objMail.To.Add("TOADDRESS");

            objMail.Subject = subject;
            objMail.Body = description;
            m_objSmtpServer.Send(objMail);