2012-09-17 58 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]>”;'我可以设置发送此电子邮件的电子邮件地址的标题(标题)。 –