34

我正在尝试修复继承网站的电子邮件问题,并且无法访问代码(即仅编译文件)。此站点需要托管在具有不同 SMTP 服务器的新 Web 服务器上。

在反编译代码位后,我可以看到电子邮件是使用如下代码片段中的方法发送的,并且 SMTP 设置为 smtpMail.SmtpServer="localhost" 但我的新网络服务器的 SMTP 服务器是“relay.tagadab.com” 我们如何配置这在 web.config 中,以便 localhost 被视为“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 中添加了这一部分,但这并没有什么不同

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

3 回答 3

80

Web.Config 文件:

<configuration>
 <system.net>
        <mailSettings>
            <smtp from="yourmail@gmail.com">
                <network host="smtp.gmail.com" 
                 port="587" 
                 userName="yourmail@gmail.com" 
                 password="yourpassword" 
                 enableSsl="true"/>
            </smtp>
        </mailSettings>
</system.net>
</configuration>
于 2015-07-11T11:14:13.333 回答
8

我没有足够的代表来回答 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);
于 2017-02-05T20:33:56.877 回答
5

设置 IIS 以将您的邮件转发到远程服务器。具体取决于 IIS 的版本。对于 IIS 7.5:

  1. 打开 IIS 管理器
  2. 如果需要,连接到您的服务器
  3. 选择服务器节点;您应该在 ASP.NET 部分的右侧看到一个 SMTP 选项
  4. 双击 SMTP 图标。
  5. 选择“将电子邮件发送到 SMTP 服务器”选项并输入您的服务器名称、凭据等。
于 2013-10-07T21:18:15.657 回答