2012-09-17 56 views
0

我正在WebMatrix中使用Razor C#語言開發網頁。我有一個託管網站,我正在嘗試將電子郵件系統納入其中。ASP WebMail:設置SMTP認證?

按照this article on WebMail我已經在我的_AppStart.cshtml頁面中設置了WebMail設置。我從我的服務提供商處獲得了我的設置。他使用CDO對象提供我一個示例代碼:

dim config, sch  
    set config = CreateObject("CDO.Configuration") 
    sch = "http://schemas.microsoft.com/cdo/configuration/" 

    with config.Fields 
     .item(sch & "sendusing") = 2 ' cdoSendUsingPort 
     .item(sch & "smtpserver") = "myserver" 
     .item(sch & "smtpserverport") = 25 
     .item(sch & "smtpusessl") = False 
     .item(sch & "smtpconnectiontimeout") = 60   
     .item(sch & "smtpauthenticate") = 1 'basic auth 
     .item(sch & "sendusername") = "[email protected]" 
     .item(sch & "sendpassword") = "password" 
     .update 
    end with 

    Set myMail=CreateObject("CDO.Message") 

    With myMail 
     .Configuration = config 
     .Subject = Request.Form("txtSubject") 
     .From = Request.Form("txtFrom") 
     .To = Request.Form("txtTo") 
     .TextBody = Request.Form("txtMessage") 
     Call .Send() 
    End With  

正如你可以看到上面的代碼在CDO製造。我正在嘗試在Razor中使用WebMail。我卡住的唯一一點是我的電子郵件服務器不是SSL,但需要基本的身份驗證。我無法在WebMail中找到任何身份驗證設置。如何在WebMail中設置SMTP認證?這是我現在的代碼:

WebMail.SmtpServer = "myserver"; 
WebMail.SmtpPort = 25; 
WebMail.EnableSsl = false; 
WebMail.UserName = "[email protected]"; 
WebMail.Password = "password"; 
WebMail.From = "Support <[email protected]>"; 

在此先感謝!

回答

0

以下是c#中的一個基本示例。 Smtp類使用用戶名密碼。

MailMessage mail = new MailMessage("emailfrom","emailto"); 


     mail.From = new MailAddress("emailfrom"); 
     mail.Subject = txtsbjct.Text; 
     string Body = txtmsg.Text; 
     mail.Body = Body; 

     mail.IsBodyHtml = true; 
     SmtpClient smtp = new SmtpClient(); 
     smtp.Host = "localhost"; 
     smtp.Credentials = new System.Net.NetworkCredential 
     ("youremail", "yourpassword"); 
+0

我在其他地方看到過該代碼,只是想澄清一些事情...不會WebMail類支持smtp認證?是否必須切換到上述代碼才能使用smtp auth? –

+0

我剛試過你的解決方案,它的工作原理。所以我現在要堅持下去。謝謝! –

+0

是 - WebMail支持基本認證。我相信你所遇到的問題與我在其他評論中發佈的發件人地址一致。 WebMail幫助程序是System.Net.Mail的一個簡單包裝,上面的代碼就是一個例子。 –

1

郵件服務器的基本認證通常由提供用戶名和密碼組成。您可以使用WebMail.UserNameWebMail.Password屬性來設置這些屬性。

順便說一下,您的提供商已經爲您提供了使用傳統ASP中的CDO發送郵件的示例代碼。這對你沒有用處。

+0

感謝您的回覆。那麼這就是我在這裏問一個問題的原因。我的服務提供商給了我一個我不需要的代碼。我實際上已經嘗試了經典的ASP代碼,它的工作原理,意味着我需要smtp身份驗證。您可以看到我已經在webmail上指定了用戶名和密碼,但webserver仍然通過說'需要SMTP認證'來引發異常。我相信SMTP認證(基本認證)需要在WebMail上設置,以使其在我的服務器上很有用。問題是如何? –

+0

您應該將WebMail.From值更改爲電子郵件地址。 –

+0

但是,這也是如此。通過設置'WebMail.From =「支持<[email protected]>」;'我可以設置發送此電子郵件的電子郵件地址的標題(標題)。 –