[英]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.