2013-10-07 225 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);