.net 如何在web.config中配置SMTP设置

mlmc2os5  于 2023-02-14  发布在  .NET
关注(0)|答案(4)|浏览(157)

我正在尝试修复继承的网站的电子邮件问题,但无法访问代码(即仅编译的文件)。此网站需要托管在具有不同SMTP服务器的新Web服务器上。
在反编译代码时,我可以看到电子邮件是使用类似下面代码片段中的方法发送的,SMTP设置为smtpMail。SmtpServer=“localhost”,但我的新Web服务器的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>
0s0u357o

0s0u357o1#

通过在web.config中设置<mailSettings>部分的值,您可以新建一个SmtpClient,客户端将使用这些设置。
https://learn.microsoft.com/en-us/dotnet/api/system.net.mail.smtpclient.-ctor?view=net-6.0#system-net-mail-smtpclient-ctor

    • Web配置文件:**
<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>
    • C#:**
SmtpClient smtpClient = new SmtpClient();
smtpClient.Send(msgMail);

但是,如果需要身份验证,我建议使用对用户名和密码更安全的配置提供程序,并使用NetworkCredentials对象设置它们。

    • C#:**
SmtpClient smtpClient = 
    new SmtpClient(_configuration.SmtpHost, _configuration.SmtpPort);
smtpClient.Credentials = 
    new NetworkCredential(_configuration.EmailUsername, _configuration.EmailPassword)
smtpClient.Send(msgMail);
ztmd8pv5

ztmd8pv52#

我没有足够的代表来回答ClintEastwood,并且接受的答案对于Web.config文件是正确的。添加此代码差异。
当在Web.config上设置mailSettings时,除了新建SmtpClient和. Send之外,您不需要做任何事情。它会自己查找连接,而不需要被引用。

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);
zf9nrax1

zf9nrax13#

将IIS设置为将邮件转发到远程服务器。具体操作因IIS的版本而异。对于IIS 7.5:
1.打开IIS管理器
1.如果需要,请连接到服务器
1.选择服务器节点;您应该在ASP.NET部分的右侧看到SMTP选项
1.双击SMTP图标。
1.选择"Deliver e-mail to SMTP server"(将电子邮件传送到SMTP服务器)选项,然后输入您的服务器名称、凭据等。

iugsix8n

iugsix8n4#

这是我的web.config文件中发送YetAnotherForum论坛电子邮件的实际代码,也是我在StarterTrack帮助台中使用的相同代码。

相关问题