簡體   English   中英

無法在C#中使用Gmail SMTP發送郵件

[英]Not able to send mails using Gmail SMTP in C#

mailMessage.From = new MailAddress(fromEmailAddress);
        mailMessage.Subject = "Test";
        mailMessage.Body = "Manish";
        mailMessage.IsBodyHtml = true;
        mailMessage.To.Add(new MailAddress(toEmailAddress));
        SmtpClient smtp = new SmtpClient("smtp.gmail.com", 465);          
        smtp.EnableSsl = true;
        System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
        NetworkCred.UserName = userNAme;
        NetworkCred.Password = password;
        smtp.UseDefaultCredentials = true;
        smtp.Credentials = NetworkCred;
        smtp.Send(mailMessage);

我正在嘗試配置Gmail SMTP,並嘗試同時使用TSL和SSL,但是上面的代碼始終拋出TimeOut Exception

我認為您需要將usedefaultcredentials設置為false。 否則,將不會使用您在網絡憑據中設置的用戶名/密碼。

您不想將SmtpClient的UseDefaultCredentials設置為true,因為它將使用https://msdn.microsoft.com/zh-cn/library/system.net.mail的當前登錄用戶的憑據。 smtpclient.usedefaultcredentials%28v = vs.110%29.aspx

另外,通過web.config配置設置可能更有意義,因為任何更改都不需要重新編譯和部署代碼。 在這里回答類似的問題: 通過C#通過Google Apps帳戶發送電子郵件

如果您選擇將smtp設置保留在代碼中,則它應如下所示:

mailMessage.From = new MailAddress(fromEmailAddress);
mailMessage.Subject = "Test";
mailMessage.Body = "Manish";
mailMessage.IsBodyHtml = true;
mailMessage.To.Add(new MailAddress(toEmailAddress));
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 465);          
smtp.EnableSsl = true;
smtp.Credentials = new System.Net.NetworkCredential(userNAme, password);
smtp.Send(mailMessage);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM