ASP.NET SMTP + web.config

时间:2010-08-07 01:47:59

标签: asp.net web-config smtp

我正在处理遗留应用程序,该代码在其代码中具有此逻辑,我不幸地无法修改。我在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);

1 个答案:

答案 0 :(得分:1)

不幸的是,

System.Web.Mail没有公开任何指定凭据的设置。但 可以发送经过身份验证的电子邮件,因为System.Web.Mail是基于CDOSYS构建的。 Here's a KB article which describes how to do it,但您基本上必须修改邮件本身的一些属性:

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

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