SMTP电子邮件未发送

时间:2015-06-15 23:08:20

标签: c# email smtp gmail smtpclient

我制作了一个简单的程序来发送电子邮件,但它没有发送它们并给我一个例外。

以下是代码:

using System.Net;
using System.Net.Mail;

public class test{
    public static void Main()
    {
        SmtpClient client = new SmtpClient();
        client.Host = "smtp.gmail.com";
        client.Port = 465;
        client.EnableSsl = true;
        client.Credentials = new NetworkCredential("myemail@gmail.com","mypassword");
        client.Send("myemail@gmail.com","myemail@gmail.com","Test","Test");
    }
}

注意:刚刚添加了以下代码行:

client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;

并将端口更改为587,然后它说需要身份验证,并且我已经提交了我的凭据,也许是因为端口587需要TLS而不是SSL(从我今天学到的搜索内容,我知道SSL是TLS的“演变”,没有?)

1 个答案:

答案 0 :(得分:0)

Tunigamer,刚试过下面的代码并且有效:

SmtpClient gmailClient = new SmtpClient {
                Host = "smtp.gmail.com",
                Port = 587,
                EnableSsl = true,
                UseDefaultCredentials = false,
                Credentials = new NetworkCredential("email@gmail.com", "password")
            };


            using(MailMessage gMessage = new MailMessage("email@gmail.com", "email@gmail.com", "Test", "Test")) {

                try {
                    gmailClient.Send(gMessage);
                } catch(Exception) { }
            }

另外,我从GMAIL收到以下通知,您需要停用帐户的登录安全功能:

enter image description here