我經常使用免費的gmail.com郵箱,因為它容量較大,但我們在使用.net編程實現郵件發送時,常會出現我們意想不到的錯誤。最常見的就是:
(1)The operation has timed out.
(2)出現類似提示:
"The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first ...."
出現此類錯誤的主要原因是:
(1)POP的設定不對;
(2)SmtpClient的UseDefaultCredentials,Credentials,EnableSsl設定不正確所引起。
首先,需要進入gmail.com郵箱,進行"轉寄和 POP/IMAP"的選項設定。如:
然後,在你的Smtp程式中設定以下幾項即可:
// 建立 SmtpClient 以發送 Email
SmtpClient client = new SmtpClient();
MailMessage message = new MailMessage();
// 設定發信人的EMAIL地址
message.From = new MailAddress(fromAddress);
// 設定收信人的EMAIL地址
message.To.Add(toAddress);
// 設定回複的EMAIL地址
message.ReplyTo = new MailAddress(replyToAddress);
// 設定抄送的EMAIL地址
// message.CC.Add(ccAddress);
// message.Bcc.Add(bccAddress);
// 設定發信主題及內容
message.Subject = msgSubject;
message.Body = body;
message.IsBodyHtml = isHtmlBody;
// 設定SMTP host及連接埠
client.Host = "smtp.gmail.com";
client.Port = 25;
client.UseDefaultCredentials = false;
System.Net.NetworkCredential basicAuthenticationInfo = new System.Net.NetworkCredential(fromAddress, smtpPassword);
client.Credentials = basicAuthenticationInfo;
client.EnableSsl = true;
client.Send(message);
祝程式發送給你帶來快樂享受!