【发布时间】:2020-01-20 01:15:11
【问题描述】:
我想在我用 C# 编写的 WinForm 程序中添加电子邮件功能。我有一个具有电子邮件功能的 Android 应用程序。它所做的是设置电子邮件,然后让用户选择电子邮件程序等。一旦选择了电子邮件正文,就完成了。但由用户选择他们想要使用的电子邮件应用程序。
我想在 Windows 中做同样的事情,但我不知道怎么做。我尝试了以下方法(基于此处的其他问题和回复):
_from = new MailAddress("my email address", "xxxx");
_to = new MailAddress("xxxx3333@gmail.com", "yyyy");
SmtpClient smtp = new SmtpClient("smtp.gmail.com");
smtp.UseDefaultCredentials = true;
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp msgMail = new MailMessage();
smtp.Body = text;
msgMail.Subject = "Subject";
msgMail.From = _from;
msgMail.To.Add(_to);
smtp.EnableSsl = true;
msgMail.Subject = _subject;
msgMail.Body = Text;
msgMail.IsBodyHtml = false;
try
{
mailClient.Send(msgMail);
}
catch (Exception ex)
{
string msg = "Exception caught in sending the email: " + ex.ToString();
showMessage(msg);
}
msgMail.Dispose();
但我明白了:
SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 Authentication Required。
在 Android 中使用类似的代码,我的程序只是获取一个电子邮件表单,但让用户决定他们将使用哪个电子邮件添加。
有没有办法在 Windows 中做到这一点?
这里有一个几乎相同的问题和回答:
C# Windows Form Application - Send email using gmail smtp
我想我已经遵循了这个但是......不起作用。
【问题讨论】:
-
它与上面引用的文章有些相似,但涉及生产服务器的问题。这是来自家庭客户。但我想要的是简单地有一个像 Android 一样的表单,应用程序填写一些字段(对我来说,是消息),让用户决定其余的。在那里,用户选择_to地址,应用程序填写消息,用户决定使用哪个应用程序发送,所以我的应用程序不需要知道使用哪个端口或哪种身份验证等。