2012-02-20 72 views
2

我有以下代碼導致'未指定SMTP主機'。 任何想法,爲什麼會發生這種情況? 非常感謝發送本地電子郵件到hotmail問題

var mailMessage = new System.Net.Mail.MailMessage(); 
mailMessage.To.Add(new MailAddress("[email protected]")); 
mailMessage.From = new MailAddress("[email protected]"); 

mailMessage.Subject = "my test subject"; 
mailMessage.Body = "my test body"; 
mailMessage.IsBodyHtml = true; 

var smtpClient = new SmtpClient { EnableSsl = true }; 
object userState = mailMessage; 
smtpClient.Send(mailMessage); 

我試過現在下面,它仍然無法

  var client = new SmtpClient("smtp.gmail.com", 587) 
      { 
       Credentials = new NetworkCredential("[email protected]", "password"), 
       EnableSsl = true, 
       DeliveryMethod = SmtpDeliveryMethod.Network, 
       UseDefaultCredentials = false 
      }; 

      var mail = new MailMessage("[email protected]", "[email protected]", "hello", "there"); 
      mail.Body = "Hello"; 
      mail.Subject = "hi"; 
      client.Send(mail); 
+0

我不知道,但是,可能是你應該設置你的端口號爲587 – 2012-02-20 13:12:22

+0

如果說SMTP主機未指定,我敢打賭,你......沒有指定SMTP主機。請參閱http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx,小心「主機」屬性。 – 2012-02-20 13:52:43

回答

0

您是否在web.config中添加了mailSettings?請查看Scott的以下鏈接。

http://weblogs.asp.net/scottgu/archive/2005/12/10/432854.aspx

+0

我已添加此 – 2012-02-20 13:25:47

+0

var email = new MailMessage { From = new MailAddress(「[email protected]」) }; email.To.Add(new MailAddress(「[email protected]」)); email.Subject =「這是我的主題」; email.Body =「這是內容」; var client = new SmtpClient(); client.Send(email); – 2012-02-20 13:26:21

+0

與 一起 <網絡主機= 「smtp.live.com」 端口= 「25」 的userName =「[email protected] 「password =」test「defaultCredentials =」true「/> 2012-02-20 13:29:08

1

您似乎沒有定義要通過發送的服務器,除非您已在應用程序配置中完成此操作。

<system.net> 
     <mailSettings> 
      <smtp> 
       <network host="127.0.0.1" port="25"/> 
      </smtp> 
     </mailSettings> 
    </system.net> 

您需要指定您的設置,而不是上面示例中使用的本地設置。

+0

謝謝,我已經添加了這個配置設置,雖然我仍然遇到同樣的問題。 – 2012-02-20 13:14:15

+0

<網絡主機= 「127.0.0.1」 端口= 「25」/> 2012-02-20 13:14:37

+0

優秀高興我的建議,幫助你。 – RubbleFord 2012-02-20 15:06:30

0

啓用SSL您發送郵件

smtpClient.EnableSsl=true; 
+0

謝謝,但我仍然遇到同樣的問題 – 2012-02-20 13:50:06

+0

是否有一個主機smtp.live.co.uk?我不確定,可能會嘗試這一個 – Mubarek 2012-02-20 13:55:19

1
var client = new SmtpClient(smtpServer, 25) 
{ 
    Credentials = new NetworkCredential(userName, password), 
    EnableSsl = false 
}; 

MailMessage mail = new MailMessage(sender, receiver, head, body); 
client.Send(mail); 

之前,您應該指定您的SMTP服務器,如上圖所示。


或者你可以在web.config文件中指定它。

<mailSettings> 
    <smtp> 
    <network 
     host="server" 
     port="portNumber" 
     userName="username" 
     password="password" /> 
    </smtp> 
</mailSettings>