【问题标题】:error in sending mail with C# [duplicate]使用 C# 发送邮件时出错 [重复]
【发布时间】:2017-12-05 18:45:11
【问题描述】:

我在 C# 中创建了一个邮件发送器。但是当我运行它时程序出错了。

这是我的代码:

MailMessage mail=new MailMessage("shahidi83am@gmail.com","shahidi83am@yahoo.com","subject","this is a test");
        SmtpClient smtp =new SmtpClient("smtp.gmail.com");
        smtp.Port=587;
        smtp.Credentials= new System.Net.NetworkCredential("username","pass");
        smtp.Send(mail);

这是错误:

System.Net.Mail.SmtpException:SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应是: 5.7.0 必须首先发出 STARTTLS 命令。 79sm6578238wrc.34 - gsmtp

【问题讨论】:

标签: c# email


【解决方案1】:

我使用带有这些参数的 gmail;

SmtpClient smtpClient = new SmtpClient();
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = true;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new NetworkCredential(smtp_user, smtp_pass);
smtpClient.Send(message);

【讨论】:

    【解决方案2】:

    下面一行中的usernamepass是原始字符串吗?然后会发生错误。

    smtp.Credentials= new System.Net.NetworkCredential("username","pass");
    

    networkCredential中,您必须提供发件人的电子邮件和密码。

    例如:

    string username = "abc@example.com";
    string pass = "whatever_your_password_is";
    smtp.Credentials= new System.Net.NetworkCredential(username,pass);
    

    【讨论】:

    • 试试@freefaller 的解决方案...希望它有效
    猜你喜欢
    • 2018-04-27
    • 2012-05-01
    • 2014-07-20
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 2018-04-11
    • 1970-01-01
    相关资源
    最近更新 更多