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

12 浏览
0 Comments

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

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

我知道可以使用Process.Start来实现,但我无法让它工作。目前我已经做到了以下几点:

string mailto = string.Format("mailto:{0}?Subject={1}&Body={2}", "to@user.com", "邮件主题", "这是邮件的正文内容");
System.Diagnostics.Process.Start(mailto);

但它只是打开Outlook邮件并显示预先编写好的文本。我想直接发送这封邮件,而不需要用户手动点击“发送”按钮。我漏掉了什么?

谢谢。

0
0 Comments

问题的原因是使用Process.Start()方法只会打开默认的邮件应用程序,而不会自动发送邮件。解决方法有两种:

1. 直接通过SmtpClient类发送邮件。

2. 使用Outlook.Interop来发送邮件。

0
0 Comments

使用Process.Start无法实现向指定地址发送邮件,它只会打开Outlook。

0
0 Comments

原因:问题的原因是 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 类,可以实现自动发送电子邮件,而不仅仅是在屏幕上显示邮件。

0