繁体   English   中英

ASP.NET SMTP + 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM