c# 使用 Process.Start 发送电子邮件
c# 使用 Process.Start 发送电子邮件
我想使用默认的电子邮件应用程序发送简单的无附件电子邮件。
我知道可以使用Process.Start来实现,但我无法让它工作。目前我已经做到了以下几点:
string mailto = string.Format("mailto:{0}?Subject={1}&Body={2}", "to@user.com", "邮件主题", "这是邮件的正文内容"); System.Diagnostics.Process.Start(mailto);
但它只是打开Outlook邮件并显示预先编写好的文本。我想直接发送这封邮件,而不需要用户手动点击“发送”按钮。我漏掉了什么?
谢谢。
原因:问题的原因是 OP 希望通过代码自动发送电子邮件,但是他使用的方法只是简单地在屏幕上显示邮件。
解决方法:要达到自动发送电子邮件的目的,可以使用 System.Net.Mail 命名空间中的 SmtpClient 类来发送邮件。以下是使用 SmtpClient 类发送电子邮件的示例代码:
using System.Net.Mail; string from = "sender@example.com"; string to = "recipient@example.com"; string subject = "Subject of message"; string body = "This is the body of the message"; MailMessage message = new MailMessage(from, to, subject, body); SmtpClient smtpClient = new SmtpClient("smtp.example.com", 587); smtpClient.Credentials = new System.Net.NetworkCredential("username", "password"); smtpClient.EnableSsl = true; smtpClient.Send(message);
上述代码将通过指定的 SMTP 服务器自动发送邮件。需要替换示例代码中的发送人、收件人、SMTP 服务器、用户名和密码等信息。
通过使用 SmtpClient 类,可以实现自动发送电子邮件,而不仅仅是在屏幕上显示邮件。