ASP.NET SMTP +网络配置

发布于 2024-09-13 06:26:45 字数 441 浏览 5 评论 0原文

我正在开发一个遗留应用程序,它的代码中有这个逻辑,不幸的是我无法修改。我在 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);

Im working on a legacy app that has this logic in its code that I cant modify unfortunately. I have the proper settings in the web.config and was wondering if i list the proper SMTP server would the web.config settings take care of the credentials?

If not what options do i have for sending email out with this code?

  string str13 = "";
    str13 = StringType.FromObject(HttpContext.Current.Application["MailServer"]);
    if (str13.Length > 2)
    {
        SmtpMail.SmtpServer = str13;
    }
    else
    {
        SmtpMail.SmtpServer = "localhost";
    }
    SmtpMail.Send(message);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不回头走下去 2024-09-20 06:26:45

不幸的是,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 = "[email protected]"; 
msg.From = "[email protected]";
msg.Subject = "Subject";
msg.Body = "Message";
SmtpMail.Send(msg);

这是否适合您的情况,我不确定......

System.Web.Mail does not expose any settings for specifying credentials, unfortunately. It is possible to send authenticated emails, though, because System.Web.Mail is built on top of CDOSYS. Here's a KB article which describes how to do it, but you basically have to modify some properties on the message itself:

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 = "[email protected]"; 
msg.From = "[email protected]";
msg.Subject = "Subject";
msg.Body = "Message";
SmtpMail.Send(msg);

Whether that works for your situation or not, I'm not sure....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文