2010-10-23 53 views
1

發送郵件我都託管在GoDaddy的一個網站,並有一個電子郵件帳戶設置與我的GoDaddy的帳戶使用smtpout.secureserver.net作爲其郵件發送服務器。我正嘗試使用此帳戶從我的測試服務器發送電子郵件,而不是實際的GoDaddy生產服務器。我的測試服務器使用IIS 7並運行我的ASP.NET MVC站點。我使用下面的代碼,但每次執行時都會得到一個SmtpException。 InnerText表示它無法連接到遠程服務器。有什麼想法我做錯了什麼?無法使用System.Net.Mail和GoDaddy的SMTP

MailMessage mailObj = new MailMessage(); 
     mailObj.From = new MailAddress(this.FromEmail); 
     mailObj.Subject = subject; 
     mailObj.Body = message; 
     mailObj.To.Add(new MailAddress(this.PayerEmail)); 
     mailObj.IsBodyHtml = true; 

     SmtpClient objSmtp = new SmtpClient(); 
     objSmtp.Host = this.SmtpHost; 
     objSmtp.Port = System.Int32.Parse(this.SmtpPort); 
     objSmtp.UseDefaultCredentials = false; 
     objSmtp.Credentials = new System.Net.NetworkCredential(this.FromEmail, this.FromEmailPassword); 
     objSmtp.EnableSsl = false; 
     objSmtp.Send(mailObj); 

我確信證書是正確的。另外,我使用的端口號是25同樣,主機smtpout.secureserver.net。我閱讀了以下文章,但無法找出我的錯誤:http://rtur.net/blog/post/2007/10/12/SMTP-with-GoDaddy.aspx

回答

4

如果您的測試服務器在國內的DSL連接上託管,您的ISP可以在端口25上阻止出站連接 - 這是作爲對抗感染的機器發送垃圾郵件的裏姆斯預防措施相當普遍。

可能的解決方案:

  • 使您的網站傳出郵件服務器配置,並使用您的ISP的發送郵件服務器測試
  • 使用其它端口時 - GoDaddy的顯示運行在端口80和SSL-SMTP在端口465加密的SMTP(雖然我不認爲 SmtpClient支持SSL的特殊風味,所以這可能不是一個選項)
  • 要求你的ISP解鎖端口:)
+0

+1提到應該是我在我的答案中提到的其他可能性! D'呃! :) – 2010-10-23 20:58:42

+0

relay-hosting.secureserver.net從生產中正常工作。爲了測試,我使用了可配置的郵件服務器選項。謝謝您的幫助! – 2010-10-25 13:21:43

+0

您也可以使用其他繼電器支持其他端口:http://coderjournal.com/2010/10/how-to-send-smtp-email-through-godaddy/ – 2010-10-26 02:25:06

1

GoDaddy很可能會阻止訪問SMTP服務器,除了它們託管的服務器之外。

你可能需要找到一種替代方法,從測試服務器發送。

+0

這一直是我的經驗太。 – 2010-10-23 21:05:47

+0

他們不會阻止它,你只需要使用特定的主機用於郵件中繼。看到我的答案。我始終從網站發送郵件。 – thorkia 2010-10-23 22:26:33

+0

@thorkia,你能夠使用發送郵件relay-hosting.secureserver.net非Godaddy的託管網站? – 2010-10-24 00:55:07

0

要在GoDaddy的發送郵件,您需要使用特定的服務器:relay-hosting.secureserver.net

的SMTP中繼服務器是某處隱藏在幫助文檔,我花了相當長的一段找到。我希望它能幫助你。

下面是代碼我在GoDaddy的利用網站來發送郵件:

mail.From = new MailAddress(fromAddress); 
mail.To.Add(toAddress); 
mail.Subject = subject; 
mail.IsBodyHtml = true; 
mail.Body = htmlconvert(bodytext); 

//Connect to server and send message.    
SmtpClient smtp = new SmtpClient(); 
smtp.Host = "relay-hosting.secureserver.net"; 
smtp.Send(mail); 

下面是GoDaddy的專屬說明網站的實際幫助文章:

http://help.godaddy.com/topic/216/article/955

+1

我保證他*不能*使用該服務器爲他的電子郵件;他不會從他的GoDaddy主機發送郵件;他從外部地點發送它。 '繼電器hosting.secureserver。net'只能用於GoDaddy託管,並且不需要驗證。 (如果它允許外部連接並且不需要授權,那麼由於被列入黑名單作爲垃圾郵件源,現在它將毫無用處) – 2010-10-23 23:42:19

+0

是的,您是正確的。我錯讀了這個問題 – thorkia 2010-10-25 01:16:52