![](/img/trans.png)
[英]How does my ASP.NET app get the SMTP settings automatically from web.config?
[英]ASP.NET SMTP + web.config
我正在开发一个遗留应用程序,该应用程序的代码中包含此逻辑,但我无法修改。 我在web.config中具有正确的设置,并且想知道我是否列出了正确的SMTP服务器,因此web.config设置是否可以处理凭据?
如果没有,我有什么选择可以发送带有此代码的电子邮件?
string str13 = "";
str13 = StringType.FromObject(HttpContext.Current.Application["MailServer"]);
if (str13.Length > 2)
{
SmtpMail.SmtpServer = str13;
}
else
{
SmtpMail.SmtpServer = "localhost";
}
SmtpMail.Send(message);
不幸的是, System.Web.Mail
没有公开任何用于指定凭据的设置。 它可以发送电子邮件身份验证,但因为System.Web.Mail
是建立在CDOSYS的顶部。 这是一篇描述该操作方法的知识库文章 ,但是您基本上必须修改消息本身的某些属性:
var msg = new MailMessage();
if (userName.Length > 0)
{
string ns = "http://schemas.microsoft.com/cdo/configuration/";
msg.Fields.Add(ns + "smtpserver", smtpServer);
msg.Fields.Add(ns + "smtpserverport", 25) ;
msg.Fields.Add(ns + "sendusing", cdoSendUsingPort) ;
msg.Fields.Add(ns + "smtpauthenticate", cdoBasic);
msg.Fields.Add(ns + "sendusername", userName);
msg.Fields.Add(ns + "sendpassword", password);
}
msg.To = "someone@domain.com";
msg.From = "me@domain.com";
msg.Subject = "Subject";
msg.Body = "Message";
SmtpMail.Send(msg);
不确定是否适合您的情况,我不确定...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.