none
System.Net.Mail with SSL port 465 RRS feed

  • 問題

  • 使用 System.Net.Mail 撰寫 email 程式寄信時,使用 SSL 與 port 465 時,出現『逾時』Exception,但使用 Outlook 也一樣使用 SSL 與 port 465則正常。
    不知有人知道如何解決此問題嗎?

    寫了 2 種方式


    • 已編輯 Mr. Kao 2014年8月22日 上午 06:05
    2014年8月21日 上午 07:54

所有回覆

  • 2014年8月21日 上午 08:44
  • 請把逾時至少上下三行程式碼貼出來。

    你確定你是 Developer ?

    你憑這段文字就能猜出程式碼怎樣寫?


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2014年8月21日 下午 01:17
  • 你的 gmail 帳號是否有啟用二次驗證,有的話請取消。

    理直氣和,切記。

    推廣

    微軟免費中文影音線上教學網站

    2014年8月22日 上午 02:11
  • using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net.Mail;
    using System.Web;
    
    namespace WebApplication1
    {
        public class mailServer1
        {
            public void SendMail()
            {
                try
                {
                    MailMessage mail = new MailMessage();
    
                    SmtpClient SmtpServer = new SmtpClient("SMTP 伺服器名稱");
    
                    mail.From = new MailAddress("寄件人 Mail");
    
                    mail.To.Add(new MailAddress("收件人 Mail"));
    
                    mail.Subject = "Test Mail";
    
                    mail.Body = "This is for testing SMTP mail from GMAIL";
    
                    SmtpServer.Port = 465;
    
                    SmtpServer.Credentials = new System.Net.NetworkCredential("使用者帳號", "使用者密碼");
    
                    SmtpServer.EnableSsl = true;
    
    
                    SmtpServer.Send(mail);
    
                    SmtpServer.Timeout = 100000;
    
                }
    
                catch (Exception ex)
                {
                    throw ex;
                }
    
            }
        }
    }

    2014年8月22日 上午 06:02
  • using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    using System.Web.Mail;
    
    namespace WebApplication1
    {
        public class mailServer4
        {
            public void SendMail()
            {
                try
                {
                    string smtpServer = "SMTP 伺服器名稱";
                    string userName = "使用者名稱";
                    string password = "使用者密碼";
                    int cdoBasic = 1;
                    int cdoSendUsingPort = 2;
                    MailMessage msg = new MailMessage();
                    if (userName.Length > 0)
                    {
                        msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", smtpServer);
                        msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465);
                        msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");
                        msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", cdoSendUsingPort);
                        msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", cdoBasic.ToString());
                        msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", userName);
                        msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", password);
                    }
                    msg.To = "收件人 Mail";
                    msg.From = "寄件人 Mail";
                    msg.Subject = "this is a test email.";
                    msg.Body = "Some text goes here";
                    SmtpMail.SmtpServer = "SMTP 伺服器名稱";
                    SmtpMail.Send(msg);
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
    }

    2014年8月22日 上午 06:04
  • 可參考 http://demo.tc/Post/793 以測試程式。

    一般程式沒問題,可能要請「SMTP 伺服器」的管理員幫忙看一下問題。


    理直氣和,切記。

    推廣

    微軟免費中文影音線上教學網站

    2014年8月22日 上午 07:00
  • 這是 ASP 的寫法,不建議使用。

    理直氣和,切記。

    推廣

    微軟免費中文影音線上教學網站

    2014年8月22日 上午 07:00
  • 謝謝所有人所提供的意見~!

    2014年8月25日 上午 03:06