c# - 使用 SmtpClient 从 Gmail 发送电子邮件

标签 c# smtpclient

我正在尝试通过 SmtpClient 连接到我的 Gmail 帐户,但它似乎无法正常工作。我指定了端口 465,启用了 SSL 并定义了所有内容,但这需要大约 2 分钟的时间,然后只显示一些消息未发送的错误。

我在这里做错了什么?

try
{
    MailMessage msg = new MailMessage();
    msg.From = new MailAddress("myemail@gmail.com);
    msg.To.Add(new MailAddress("theiremil@email.com));
    msg.Subject = "This is the subject";
    msg.Body = "This is the body";
    SmtpClient sc = new SmtpClient("smtp.gmail.com", 465);
    sc.EnableSsl = true;
    sc.UseDefaultCredentials = false;
    sc.Credentials = new NetworkCredential("myemail@gmail.com", "pass");
    sc.DeliveryMethod = SmtpDeliveryMethod.Network;
    sc.Send(msg);
    erroremail.Text = "Email has been sent successfully.";
}
catch (Exception ex)
{
    erroremail.Text = "ERROR: " + ex.Message;
}

最佳答案

您需要允许“不太安全的应用程序”:

https://support.google.com/accounts/answer/6010255

代码:

try
{
    new SmtpClient
    {
        Host = "Smtp.Gmail.com",
        Port = 587,
        EnableSsl = true,
        Timeout = 10000,
        DeliveryMethod = SmtpDeliveryMethod.Network,
        UseDefaultCredentials = false,
        Credentials = new NetworkCredential("MyMail@Gmail.com", "MyPassword")
    }.Send(new MailMessage {From = new MailAddress("MyMail@Gmail.com", "MyName"), To = {"TheirMail@Mail.com"}, Subject = "Subject", Body = "Message", BodyEncoding = Encoding.UTF8});
    erroremail.Text = "Email has been sent successfully.";
}
catch (Exception ex)
{
    erroremail.Text = "ERROR: " + ex.Message;
}

关于c# - 使用 SmtpClient 从 Gmail 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31231033/

相关文章:

c# - 将跟踪 id/span id 设置为实际的关联 ID,以使用 OpenTelemetry for c# 跟踪请求

Java Fake SMTP 由于超时而无法接收我的消息

c# - 无法使用隐式 SSL smtp 服务器发送电子邮件

c# - System.Net.Mail 创建无效的电子邮件和 eml 文件?在主机名中插入额外的点

c# - Windows 10 通用平台 aoo 模块 CommonLanguageRuntimeLibrary 中的错误 :Cannot find type System. MarshalByRefObject

c# - Linq Foreach 跳线

c# - Linq在字符串数组上

c# - 以编程方式创建测试

C# SmtpClient 错误 : not local host?

c# - 使用 System.Net.Mail 发送电子邮件时如何捕获邮件大小太大异常?