2013-10-07 172 views
20

我正在嘗試修復繼承的網站的電子郵件問題,並且無法訪問代碼(即編譯的文件)。該站點需要託管在具有不同smtp服務器的新Web服務器上。如何在web.config中配置smtp設置

在代碼中,我可以看到郵件使用方法如下面的代碼片段發送和SMTP設置爲SmtpMail的SmtpServer =「localhost」的,但我的新的web服務器的SMTP服務器「relay.tagadab.com」如何反編譯位使本地主機被視爲「relay.tagadab.com」

Imports Microsoft.VisualBasic, System.Web.Mail 

Shared Sub SendMail(ByVal ToAdd, ByVal FromAdd, ByVal Message, ByVal Subject) 

    Dim msgMail As New MailMessage() 

    msgMail.To = ToAdd 
    msgMail.From = FromAdd 
    msgMail.Subject = Subject 
    msgMail.Headers.Add("X-Mailer", "ASP.NET") 

    msgMail.BodyFormat = MailFormat.Text 
    msgMail.Body = Message 
    'SmtpMail.SmtpServer = "mail.the-radiator.com" 
    SmtpMail.SmtpServer = "localhost" 
    SmtpMail.Send(msgMail) 

End Sub 

我在web.config中添加了此節,但這並不有所作爲在web.config中中我們能夠配置此

<system.net> 
    <mailSettings> 
     <smtp> 
      <network host="relay.tagadab.com" port="25" /> 
     </smtp> 
    </mailSettings> 
</system.net> 
+1

剛剛[配置IIS(http://stackoverflow.com/questions/239262/can-i-configure-smtp- in-iis-so-it-relays-to-a-remote-smtp-server),以便SMTP本地主機將郵件發送到relay.tagadab.com。 – nunzabar

+0

@nunzabar你能不能給我一個例子我們如何轉發它 – rumi

回答

4

將IIS設置爲將您的郵件轉發到遠程服務器。具體取決於IIS的版本差異很大。對於IIS 7.5:

  1. 打開IIS管理器
  2. 連接到您的服務器,如果需要
  3. 選擇服務器節點;您應該在ASP.NET部分右側看到一個SMTP選項
  4. 雙擊SMTP圖標。
  5. 選擇「將電子郵件傳送至SMTP服務器」選項,並輸入您的服務器名稱,證書等
+0

我已經嘗試在web.config中添加一個部分(請參閱我的問題),但這並沒有什麼區別。當我打開SMTP電子郵件時,我看到完全一樣的東西 – rumi

+0

再仔細一點,您必須確定如何實例化SmtpMail。如果您使用[默認構造函數](http://msdn.microsoft.com/zh-cn/library/system.net.mail.smtpclient.smtpclient.aspx),則只會引用Web.config。 – nunzabar

40

Web.Config文件:

<configuration> 
<system.net> 
     <mailSettings> 
      <smtp from="[email protected]"> 
       <network host="smtp.gmail.com" 
       port="587" 
       userName="[email protected]" 
       password="yourpassword" 
       enableSsl="true"/> 
      </smtp> 
     </mailSettings> 
</system.net> 
</configuration> 
+1

C#方面呢?代碼示例請問? –

+3

代碼示例:SmtpClient smtpClient = new SmtpClient(); smtpClient.Send(msgMail); –

+0

@Sanjay kumar它還能工作嗎?在嘗試使用帶有smtp的gmail時,我收到以下錯誤:「SMTP服務器需要安全連接或客戶端未通過身份驗證,服務器響應爲:5.5.1需要身份驗證。」 – dpant

4

我沒有足夠的代表回答ClintEastwood,並且接受的答案對於Web.config文件是正確的。添加此代碼差異。

當您在Web.config上設置mailSettings時,除了新建SmtpClient和.Send之外,您不需要執行任何操作。它發現連接本身而不需要被引用。你會從這個改變你的C#:

SmtpClient smtpClient = new SmtpClient("smtp.sender.you", Convert.ToInt32(587)); 
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("username", "password"); 
smtpClient.Credentials = credentials; 
smtpClient.Send(msgMail); 

要這樣:

SmtpClient smtpClient = new SmtpClient(); 
smtpClient.Send(msgMail);