用vs2005 asp.net 在xp sp2系统运行vb aspx代码,通过smtp.21cn.com
服务器发送email,总是验证错误,代码如下:
 Public Shared Function SendEmail() As String
        Dim AddrFrm As MailAddress
        Dim AddrTo As MailAddress
        Dim Mail As MailMessage
        Dim Smtp As SmtpClient
        AddrFrm = New MailAddress("[email protected]")
        AddrTo = New MailAddress("[email protected]")
        Mail = New MailMessage(AddrFrm, AddrTo)
        Mail.Subject = "net email sbj"
        Mail.Body = "net mail body"
        Mail.Priority = MailPriority.Normal
        Smtp = New SmtpClient("smtp.21cn.com")
        Smtp.DeliveryMethod = SmtpDeliveryMethod.Network
        Smtp.UseDefaultCredentials = True
        Smtp.Credentials = New System.Net.NetworkCredential("sndmailmaster", "abc123456")   
                  'above err: authentication fail,decode user password error
        Try
            Smtp.Send(Mail)
        Catch ex As Exception
            Return ex.Message
        End Try
        Return ""
    End Function显示错误:authentication fail,decode user password error
显然是验证问题。请问高手错在哪里?怎么改
Smtp.Credentials = New System.Net.NetworkCredential(...)
这一句?
这个问题困惑我很久,不知道到你们怎么发邮件的?用什么smtp服务器
验证部分如何写?如果能解决问题,可加到100分。多谢了。

解决方案 »

  1.   

    怎么这种问题又有人出问题拉,到俺的网站瞧一眼就明白了
    www.ebookit.cn上面有
      

  2.   

    用你自己机器上的smtp吧,人家21cn是白痴啊,免费帮你发邮件,人家要身份认证的
      

  3.   

    加上这个:
    Mail.Fields.Add ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1")  
    Mail.Fields.Add ("http://schemas.microsoft.com/cdo/configuration/sendusername", SenderUserName) 
    Mail.Fields.Add ("http://schemas.microsoft.com/cdo/configuration/sendpassword",SenderMailPassword)    
      

  4.   

    think4: Mail 没有Fields 属性呀? 
    说明一下,我已经在21cn申请了一个邮箱里了:[email protected]
    在本机的outlook 发信可以。
      

  5.   

    这应该是基本问题吧?怎么就没有正解呢?
    这里问题出在安全验证上,其它的都没有问题(除了笔误).
    笔误的代码:
    AddrTo   =   New   MailAddress( "[email protected] ") 应为:
    AddrTo   =   New   MailAddress( "[email protected]") 其中[email protected]是我在21cn申请的邮箱
    它用outlook 发送正常
      

  6.   

    Mail 是MailMessage的实例,另:
    第一行表示你的pop3服务器需要验证
    第二行表示验证邮箱的用户名
    第三行表示验证邮箱的密码
      

  7.   

    把发件人改成你的邮箱名就可以了, 即把发件人改成:[email protected]
    一般这种免费邮箱的发件人都只能是自已
      

  8.   

    还是没有解决。
    zq8024: 
    把发件人改成:[email protected]  也是如此
    think4:
    MailMessage 没有 Fields属性呀,我用的vs2005 你用的那个版本呀?
      

  9.   

    验证问题,我前段时间用Jmail做的时候也一样..人家需要验证的..
    不过奇怪的是我用163的邮箱,05年以前申请的就可以成功发送,而05年以后申请的就通不过验证.搞不懂
      

  10.   

    算解决了,换到了163.com 
    原代码基本没有变。