加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

VB编写发送邮件的代码

(2013-06-08 15:21:54)
标签:

发邮件

mail

vb

outlook.application

it

分类: 开发经验

VB 发送邮件,试过outlook.application 对硬件要求有些高,调试了许久都没有成功,放弃!

听网上同仁说还有jmail.dll等等,需要引用库,也调试了很久,以失败告终!最后终于找到了最简便的VB后台编写发送邮件的代码  用System.Net.Mail发邮件 谢谢博友,火速搜藏!

Imports System.Net.Mail
Imports System.Net
Imports System.Windows.Forms

 

       Dim strBodyTemp As String = ""
        Dim smtp As SmtpClient = New SmtpClient() '//实例化一个SmtpClient
        'smtp.DeliveryMethod = SmtpDeliveryMethod.Network '//将smtp的出站方式设为 Network
        'smtp.EnableSsl = False '//smtp服务器是否启用SSL加密
        smtp.Host = "TECHSERVER4.techland.com.hk" ' //指定 smtp 服务器地址
        'smtp.Host = "smtp.163.com" ' //指定 smtp 服务器地址

        'smtp.Timeout = 360000
        smtp.Port = 25 ';             //指定 smtp 服务器的端口,默认是25,如果采用默认端口,可省去

        '//如果你的SMTP服务器不需要身份认证,则使用下面的方式,不过,目前基本没有不需要认证的了
         smtp.UseDefaultCredentials = True
        '//如果需要认证,则用下面的方式
        smtp.Credentials = New NetworkCredential("peterkong@techland.com.hk", "peterk")

        Dim mm As MailMessage = New MailMessage() ' //实例化一个邮件类

        'mm.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1") 'basic authentication 
        'mm.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "abc") 'set your username here  
        'mm.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "Your Password") ' set your password here  
        'mm.SmtpServer = "smtp.126.com" 'your real server goes here


        mm.Priority = MailPriority.High ' //邮件的优先级,分为 Low, Normal, High,通常用 Normal即可
        mm.From = New MailAddress("peterkong@techland.com.hk", "Peter Kong", Encoding.GetEncoding(936))

        '//收件方看到的邮件来源;
        '//第一个参数是发信人邮件地址
        '//第二参数是发信人显示的名称
        '//第三个参数是 第二个参数所使用的编码,如果指定不正确,则对方收到后显示乱码
        '//936是简体中文的codepage值


        '注:上面的邮件来源,一定要和你登录邮箱的帐号一致,否则会认证失败
         mm.ReplyTo = New MailAddress("test_box@gmail.com", "我的接收邮箱", Encoding.GetEncoding(936))
        '//ReplyTo 表示对方回复邮件时默认的接收地址,即:你用一个邮箱发信,但却用另一个来收信'
        '//上面后两个参数的意义, 同 From 的意义

        ' mm.CC.Add("a@163.com,b@163.com,c@163.com")
        '//邮件的抄送者,支持群发,多个邮件地址之间用 半角逗号 分开

        '//当然也可以用全地址,如下:
        'mm.CC.Add(New MailAddress("RickyFu@techland.com.hk", "Ricky Fu", Encoding.GetEncoding(936)))
        ' mm.CC.Add(New MailAddress("b@163.com", "抄送者B", Encoding.GetEncoding(936)))
        ' mm.CC.Add(New MailAddress("c@163.com", "抄送者C", Encoding.GetEncoding(936)))

        ' mm.Bcc.Add("d@163.com,e@163.com") '//邮件的密送者,支持群发,多个邮件地址之间用 半角逗号 分开

        '//当然也可以用全地址,如下:
        ' mm.CC.Add(New MailAddress("d@163.com", "密送者D", Encoding.GetEncoding(936)))
        ' mm.CC.Add(New MailAddress("e@163.com", "密送者E", Encoding.GetEncoding(936)))

         mm.Sender = New MailAddress("RickyFu@techland.com.hk", "Ricky Fu", Encoding.GetEncoding(936))
        '//可以任意设置,此信息包含在邮件头中,但并不会验证有效性,也不会显示给收件人//说实话,我不知道有啥实际作用,大家可不理会,也可不写此项
        ' 添加了此项好像收件人可以是自己,如果不加收件人是自己会发送失败

         mm.To.Add("g@163.com,h@163.com") '//邮件的接收者,支持群发,多个地址之间用 半角逗号 分开

        ' //当然也可以用全地址添加
        mm.To.Add(New MailAddress("PeterKong@techland.com.hk", "Peter Kong", Encoding.GetEncoding(936)))
        'mm.To.Add(New MailAddress("RickyFu@techland.com.hk", "Ricky Fu", Encoding.GetEncoding(936)))
        'mm.To.Add(New MailAddress("PeterKong@techland.com.hk", "Peter Kong", Encoding.GetEncoding(936)))
        mm.To.Add(New MailAddress("PeterKong@techland.com.hk", "Peter Kong", Encoding.GetEncoding(936)))

        mm.Subject = "这是邮件标题" ' //邮件标题
         mm.SubjectEncoding = Encoding.GetEncoding(936)
        '// 这里非常重要,如果你的邮件标题包含中文,这里一定要指定,否则对方收到的极有可能是乱码。
        '// 936是简体中文的pagecode,如果是英文标题,这句可以忽略不用

        mm.IsBodyHtml = True '//邮件正文是否是HTML格式

        mm.BodyEncoding = Encoding.GetEncoding(936) '//邮件正文的编码,设置不正确,接收者会收到乱码

        ' mm.Body = "

这一段的字体大小的值是8。

" + _
        ' "

这一段的字体大小的值是4。

" '//邮件正文
        strBodyTemp = "" + "Dear XXX" + "," + "" + vbCrLf + vbCrLf _
                  + "" + strBodyTemp.Insert(strBodyTemp.IndexOf("#") + 1, "DocNo") + "" _
                  + vbCrLf + vbCrLf + "" + "Best regards," + vbCrLf + "SalemanName" + "" + vbCrLf _
                  + "" + "SalemanJobs" + ""

        strBodyTemp = strBodyTemp.Replace(vbCrLf, "
")
        mm.Body = strBodyTemp

        mm.Attachments.Add(New Attachment("E:\Temp\New Text Document.txt", System.Net.Mime.MediaTypeNames.Application.Rtf))
        'mm.Attachments.Add(New Attachment("f:\Export_Vgrid.rar", System.Net.Mime.MediaTypeNames.Application.Rtf))
        ' //添加附件,第二个参数,表示附件的文件类型,可以不用指定
        '//可以添加多个附件
        mm.Attachments.Add(New Attachment("d:b.doc"))

        Try
            smtp.Send(mm) ' //发送邮件,如果不返回异常, 则大功告成了。

            MessageBox.Show("Send email succesfully!")

        Catch ex As Exception
            MessageBox.Show("Send email failed!")
        End Try

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有