none
vb.net 邮件发送问题 RRS feed

  • 问题

  •    使用.net.mail 发送邮件,毫不犹豫的提示发送失败。包括在微软下载的例子,麻烦帮我看看。

    Private Sub SendMail()
    
      Dim Msg As New MailMessage
    
      Dim SC As New SmtpClient
    
      Msg.To.Add("b@qq.com")
    
      Msg.From = New MailAddress("a@qq.com", "1234", System.Text.Encoding.UTF8)
    
      Msg.Subject = "Test Mail"
    
      Msg.SubjectEncoding = System.Text.Encoding.UTF8
    
      Msg.Body = "Pardy"
    
      Msg.BodyEncoding = System.Text.Encoding.UTF8
    
      Msg.IsBodyHtml = True
    
      Msg.Priority = MailPriority.High
    
    
    
      SC.Credentials = New System.Net.NetworkCredential("a@qq.com", "*******")
    
      SC.Host = "smtp.qq.com"
    
      SC.Port = 25
    
      SC.Send(Msg)
    
    
    
    
    
    
    
    

     


    纷纷扰扰与我无关
    2011年7月11日 2:02

答案

  • 悄悄地告诉你,.Net的SmtpClient一直有一个BUG,现在.Net 4.0都没有修复

    这个BUG就是如果你的计算机名是中文的话,无论你怎么正确的设定都会发送失败,直接无解。除非你把计算机名改成英文


    算神的博客
    2011年8月11日 7:08

全部回复

  • 您好

    檢查一下您的 SmtpClient 屬性設定部分,參考 为什么139邮箱没有发送成功!


    歡迎參觀我的Blog.NET菜鳥自救會
    2011年7月11日 2:18
  •    Dim Msg As New MailMessage
        Dim SC As New SmtpClient
        Msg.To.Add("a@qq.com")
        Msg.From = New MailAddress("b@qq.com", "1234", System.Text.Encoding.UTF8)
        Msg.Subject = "Test Mail"
        Msg.SubjectEncoding = System.Text.Encoding.UTF8
        Msg.Body = "Pardy"
        Msg.BodyEncoding = System.Text.Encoding.UTF8
        Msg.IsBodyHtml = True
        Msg.Priority = MailPriority.High
    
        SC.UseDefaultCredentials = False
        SC.Credentials = New System.Net.NetworkCredential("b", "******")
        SC.Host = "smtp.qq.com"
        SC.Port = 25
        SC.EnableSsl = False
        SC.DeliveryMethod = SmtpDeliveryMethod.Network
        SC.Send(Msg)
    
    如果您有QQ,建议您测试了看看,谢谢!
    


    纷纷扰扰与我无关
    2011年7月11日 3:24
  • 帮我看看吧,各位大哥们……


    纷纷扰扰与我无关
    2011年7月11日 6:53
  • 你好

    成功發到EMAIL

    你的錯誤信息是什麼呢?

    如果是這一個的話

    可以嘗試到以下URL 啟動 QQ 的SMTP 服務

    https://mail.qq.com/cgi-bin/frame_html?sid=z9PwZLEWXvftNVgW&r=57b0428af84294bd5fbf693421a20018

    Please correct me if my concept is wrong

     


    Chi
    2011年7月11日 7:39
    版主
  • 谢谢您的及时回复,并贴图,非常感谢!

    QQ邮箱开启了IMAP/SMTP 服务后,问题依旧;提示“邮件发送失败”,其他无任何提示;

    之前我有怀疑公司网络端口问题,然后我用jmail控件,同样的端口,同样的QQ邮箱,能够正常发送;


    纷纷扰扰与我无关
    2011年7月11日 8:23
  • 你好

    我用port 25 是沒有問題的..port 465 和 587 就會出現 timeout

    以下是我的程度碼

     

     
    Dim Msg As New MailMessage
      Dim SC As New SmtpClient
      Msg.To.Add("test@sharechiwai.com")
      Msg.From = New MailAddress("MyQQEmailAddress@qq.com", "Sender Name", System.Text.Encoding.UTF8)
      Msg.Subject = "Test Mail"
      Msg.SubjectEncoding = System.Text.Encoding.UTF8
      Msg.Body = "Pardy"
      Msg.BodyEncoding = System.Text.Encoding.UTF8
      Msg.IsBodyHtml = True
      Msg.Priority = MailPriority.High
    
      SC.UseDefaultCredentials = False
      SC.Credentials = New System.Net.NetworkCredential("QQ 數字用戶名", "我的password")
      SC.Host = "smtp.qq.com"
      SC.Port = 25
      SC.EnableSsl = False
      SC.DeliveryMethod = SmtpDeliveryMethod.Network
      SC.Send(Msg)


    Please correct me if my concept is wrong

     

     


    Chi
    2011年7月11日 12:41
    版主
  • 现在回到家里,可以正常使用。证明不是代码问题。

    我在公司里面很多人的电脑上调试了都不行。但用jmail控件就可以。麻烦大家帮我看看,是啥问题

     


    纷纷扰扰与我无关
    2011年7月11日 12:44
  • 你好

    可能是公司/公司的ISP 的 PROXY 問題..

    阻了一些 PORT /IP ADDRESS 等等

    我朋友也試過有差不多的問題..connect 不到 MSSQL Server

     


    Chi
    2011年7月11日 13:07
    版主
  • 为什么用jmail就可以呢,而已也是同样的端口。

    我的电脑上其他的邮箱客户端端口都是设置为25.都可以正常使用哦


    纷纷扰扰与我无关
    2011年7月12日 0:16
  • 邮箱客户端大多是在公司使用。如果这样轻易被阻止,根本没办法使用的。

    而我装过的好几款邮箱客户端都没有出现这种问题。期待您的解答,谢谢!


    纷纷扰扰与我无关
    2011年7月12日 6:27
  • 我尝试过,通过DOS发送邮件是正常的。


    纷纷扰扰与我无关
    2011年7月13日 2:22
  • 你好

    這個問題真要要慢慢研究/測試 才可以找出問題

    待我找到解決方法時再回

    不知道會不會是一些小小的設定問題

     


    Chi
    2011年7月13日 3:49
    版主
  • 你好

    這個問題真要要慢慢研究/測試 才可以找出問題

    待我找到解決方法時再回

    不知道會不會是一些小小的設定問題

     


    Chi

    我不得不再次的发表一些感想。这个论坛的版主们,真的是活雷锋,不厌其烦地解决这么多网友的无数个问题。而且耐心、热情,最重要的是在技术很高的情况下,能保持那种谦虚谨慎,真正属于品德高尚的人。之所以说再次,是因为我以前也发表过这样的感受,的确是这样。
    学无止境
    2011年7月14日 12:19
  • 确实是这样,他们技术好,心态也好。品德更好!


    纷纷扰扰与我无关
    2011年7月15日 0:30
  •     已经过去十几天了,再顶一下
    纷纷扰扰与我无关
    2011年7月26日 3:22
  • 你好

    不好意思..很久沒有回了..真的是沒有頭緒 為什麼只是在公司上不能直接用SMTP CLIENT 來發EMAIL, 但是用JMAIL 又可以..

    可不可以幫忙試多一個東西..

    就是在另一間EMAIL provider開啟一個新的EMAIL account. E.G. GMAIL/139 等等

    嘗試用同一個程式碼試試能不能成功發送EMAIL...

    看看是整體上在公司使用SMTP CLIENT 都出現問題..還是只有用QQ 時先出現問題

    Please correct me if my concept is wrong

    希望其他高人可以幫忙看看有沒有解決方法 或找到問題所在

     


    Chi
    2011年7月26日 5:37
    版主
  •   谢谢您的解答,gmail与139都试过了,不行。以下是jmail发送成功的代码:

     

        Dim MS As New jmail.Message
        MS.Silent = True
        MS.Logging = True
        MS.Charset = "UTF-8"
        MS.ContentType = "Text/html"
        MS.AppendText("123456")
        MS.From = "xxxxx@qq.com"
        MS.FromName = "1234"
        MS.AddRecipient("xxxxx@qq.com")
        MS.MailServerUserName = "xxxxxx"
        MS.MailServerPassWord = "xxxxxx"
        MS.Subject = "山楂树之恋"
        MS.Body = "pardy"
        MS.Priority = 1
        MS.Send("smtp.qq.com")
        MS.Close()
    

       我用过很多邮件客户端,都没有出现什么问题。

     


    纷纷扰扰与我无关
    2011年7月26日 9:16
  • 继续在原地等待着高手出现,谢谢!
    纷纷扰扰与我无关
    2011年8月11日 4:14
  • 悄悄地告诉你,.Net的SmtpClient一直有一个BUG,现在.Net 4.0都没有修复

    这个BUG就是如果你的计算机名是中文的话,无论你怎么正确的设定都会发送失败,直接无解。除非你把计算机名改成英文


    算神的博客
    2011年8月11日 7:08
  • 算神,你好可恨呐,现在才告诉我。

    我们公司的电脑计算机名都是中文,难怪在公司里面每台电脑都用不了,在自己家里却可以用。

    唉,解决了心中的疑惑,真的该好好谢谢你。有空来福州了请你吃饭。


    纷纷扰扰与我无关
    2011年8月12日 5:30
  • 謝謝你 算神!!!

    終於找到了問題的原因了..

     


    Chi
    2011年8月12日 7:18
    版主
  • 謝謝你 算神!!!

    終於找到了問題的原因了..

     


    Chi


    1、问题你们可以反馈到微软让他们解决吗?

    2、为什么不支持中文?日文或者韩文什么的支持吗?


    纷纷扰扰与我无关
    2011年8月13日 0:28
  •  如果让客户去改计算机名称再使用软件,肯定不太现实。期待解决方法
    纷纷扰扰与我无关
    2011年8月13日 1:45
  •  如果让客户去改计算机名称再使用软件,肯定不太现实。期待解决方法
    纷纷扰扰与我无关


    这个BUG我从VB2005 Beta2公测的时候就发现了,当时写过反馈邮件也发过帖子,可能是自己E文表达能力不好吧,没人理会,一直到VB2010发布仍然没有修正。

    所以等微软官方补丁不现实,建议楼主不想改计算机名的话 还是采用第三方的邮件发送组件来实现比较好,或许微软的不完善是故意的 是为了给第三方类一些生存空间

    “以上纯属个人观点”


    算神的博客
    2011年8月14日 23:39
  •  如果让客户去改计算机名称再使用软件,肯定不太现实。期待解决方法
    纷纷扰扰与我无关


    这个BUG我从VB2005 Beta2公测的时候就发现了,当时写过反馈邮件也发过帖子,可能是自己E文表达能力不好吧,没人理会,一直到VB2010发布仍然没有修正。

    所以等微软官方补丁不现实,建议楼主不想改计算机名的话 还是采用第三方的邮件发送组件来实现比较好,或许微软的不完善是故意的 是为了给第三方类一些生存空间

    “以上纯属个人观点”


    算神的博客

    或许吧,只是觉得vb.net 如果有自带的发送邮件的功能,再用第三方,有点累赘的感觉。

    计算机名没有改成中文,发送不了邮件。且只是提示“邮件发送失败",无其他任何提示。这种被你一提醒,感觉更奇怪的。

    不知道这里的管理员能不能把这些信息反馈过去,也不枉此帖。

    请管理员回复下,然后结贴吧。


    纷纷扰扰与我无关
    2011年8月15日 4:07
  • 算神找出了问题的原因,但没有能真正解决这个问题,我希望这部分能有你们搞定。
    纷纷扰扰与我无关
    2011年8月19日 6:03