簡體   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