【问题标题】:ASP WebMail: Set up SMTP authentication?ASP WebMail:设置 SMTP 身份验证?
【发布时间】:2012-09-17 08:13:16
【问题描述】:

我正在 WebMatrix 中使用 Razor C# 语言开发网页。我有一个托管网站,我正在尝试将电子邮件系统整合到其中。

根据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") = "myemail@email.com"
        .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 = "myemail@email.com";
WebMail.Password = "password";
WebMail.From = "Support <myemail@email.com>";

提前致谢!

【问题讨论】:

    标签: asp.net email razor smtp webmatrix


    【解决方案1】:

    邮件服务器的基本身份验证通常包括提供用户名和密码。您可以使用 WebMail.UserNameWebMail.Password 属性设置它们。

    顺便说一句,您的提供商已经为您提供了在经典 ASP 中使用 CDO 发送邮件的示例代码。它对你没有用。

    【讨论】:

    • 感谢您的回复。嗯,这就是为什么我在这里问一个问题。我的服务提供商给了我一个我不需要的代码。我实际上已经在经典 asp 上尝试过该代码并且它有效,这意味着我确实需要 smtp auth。你可以看到我已经在 webmail 上指定了用户名和密码,但是 webserver 仍然通过说“需要 SMTP 身份验证”来抛出异常。我相信需要在 WebMail 上设置 SMTP 身份验证(基本身份验证)以使其在我的服务器上有用.. 问题是如何?
    • 您应该将 WebMail.From 值更改为电子邮件地址。
    • 但这也可以这样工作。通过设置WebMail.From = "Support &lt;myemail@email.com&gt;";,我可以设置发送这封电子邮件的电子邮件地址的标题(标题)。
    • 嗯.. 也许他们在版本 2 中更新了它。我敢肯定它只会接受 v 1 中的电子邮件地址。
    【解决方案2】:

    这是一个 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");
    

    【讨论】:

    • 我在其他地方看到过该代码,只是想澄清一下……WebMail 类不支持 smtp 身份验证吗?是否必须切换到上述代码才能使用 smtp auth?
    • 我刚刚尝试了您的解决方案,它有效。所以我现在要坚持这个。谢谢!
    • 是 - WebMail 支持基本身份验证。我相信您遇到的问题是我在其他评论中发布的发件人地址。 WebMail 帮助器是 System.Net.Mail 的简单包装器,上面的代码就是一个示例。
    猜你喜欢
    • 1970-01-01
    • 2010-10-27
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多