解決.net中使用gmail.com郵箱進行Smtp傳送信件時失敗的問題

大可山發表於2009-01-06

我經常使用免費的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);

祝程式傳送給你帶來快樂享受!


 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14601556/viewspace-528470/,如需轉載,請註明出處,否則將追究法律責任。

相關文章