我正在尝试修复继承的网站的电子邮件问题,但无法访问代码(即仅编译的文件)。此网站需要托管在具有不同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>
4条答案
按热度按时间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
但是,如果需要身份验证,我建议使用对用户名和密码更安全的配置提供程序,并使用NetworkCredentials对象设置它们。
ztmd8pv52#
我没有足够的代表来回答ClintEastwood,并且接受的答案对于Web.config文件是正确的。添加此代码差异。
当在Web.config上设置mailSettings时,除了新建SmtpClient和. Send之外,您不需要做任何事情。它会自己查找连接,而不需要被引用。
对此:
zf9nrax13#
将IIS设置为将邮件转发到远程服务器。具体操作因IIS的版本而异。对于IIS 7.5:
1.打开IIS管理器
1.如果需要,请连接到服务器
1.选择服务器节点;您应该在ASP.NET部分的右侧看到SMTP选项
1.双击SMTP图标。
1.选择"Deliver e-mail to SMTP server"(将电子邮件传送到SMTP服务器)选项,然后输入您的服务器名称、凭据等。
iugsix8n4#
这是我的web.config文件中发送YetAnotherForum论坛电子邮件的实际代码,也是我在StarterTrack帮助台中使用的相同代码。