您的位置:首页 > 编程语言 > VB

VB.NET的一个邮件发送函数

2013-07-22 18:06 387 查看
''' <summary>
''' VB.NET邮件发送程序
''' 还没用在别的服务器,不晓得能不能行,慎用!
''' </summary>
''' <param name="sFrom">发件人地址</param>
''' <param name="sTo">收件人地址</param>
''' <param name="sCc">抄送人地址</param>
''' <param name="sBcc">密件抄送人地址</param>
''' <param name="sSubject">邮件主题</param>
''' <param name="sBody">邮件内容</param>
''' <returns></returns>
''' <remarks></remarks>
Protected Function SendMailBySmtp(ByVal sFrom As String, ByVal sTo As String(), ByVal sCc As String(), ByVal sBcc As String(), ByVal sSubject As String, ByVal sBody As String) As String
Dim sSmtpServer As String = "192.168.1.1"   'SMTP邮件服务器地址
Try
'使用SMTP认证的方式寄信,才不会被当作Relay
Dim SmtpUser As New System.Net.NetworkCredential()
'认证账号不必与寄信人相同,在此设定某一个公用账号即可
SmtpUser.UserName = "******"    'SMTP服务器的window验证帐号
SmtpUser.Password = "******"    'SMTP服务器的window验证密码
SmtpUser.Domain = "********"    'SMTP服务器的域
Dim smtpClient As New System.Net.Mail.SmtpClient()
smtpClient.Host = sSmtpServer
'发件人地址
Dim AddrMailFrom As New System.Net.Mail.MailAddress(sFrom, "", System.Text.Encoding.UTF8)
'收件人地址
Dim AddrMailTo As New System.Net.Mail.MailAddress(sTo(0), "", System.Text.Encoding.UTF8)
'邮件消息对象
Dim mailMsg As New System.Net.Mail.MailMessage(AddrMailFrom, AddrMailTo)
'添加多个收件人地址
Dim i As Long
For i = 1 To sTo.Length - 1
If Trim(sTo(i)) <> "" Then
mailMsg.To.Add(Trim(sTo(i)))
End If
Next i
'添加抄送收件人地址
Dim j As Long
If Not (sCc Is Nothing) Then    '注意是空还是nothing
For j = 0 To sCc.Length - 1
If Trim(sCc(j)) <> "" Then
mailMsg.CC.Add(Trim(sCc(j)))
End If
Next j
End If
'添加密件抄送地址
Dim k As Long
If Not (sBcc Is Nothing) Then    '注意是空还是nothing
For k = 0 To sBcc.Length - 1
If Trim(sBcc(k)) <> "" Then
mailMsg.Bcc.Add(Trim(sBcc(k)))
End If
Next k
End If
mailMsg.Body = sBody '邮件内容
mailMsg.BodyEncoding = System.Text.Encoding.UTF8 '设置邮件内容编码方式
mailMsg.IsBodyHtml = True '设置邮件内容以HTML形式发送
mailMsg.Subject = sSubject '邮件主题
mailMsg.BodyEncoding = System.Text.Encoding.UTF8 '设置邮件主题编码方式
'加注回复地址
mailMsg.ReplyTo = AddrMailFrom
Dim client As Net.Mail.SmtpClient = New System.Net.Mail.SmtpClient(sSmtpServer)
client.UseDefaultCredentials = False
client.Credentials = SmtpUser
client.Host = sSmtpServer
client.DeliveryMethod = Net.Mail.SmtpDeliveryMethod.Network
client.Send(mailMsg)
''设置用于发送电子邮件的凭据
'smtpClient.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials     '当前安全上下文的网络凭证
''将指定的邮件发送到SMTP服务器以便传送
'smtpClient.Send(mailMsg)
'smtpClient.UseDefaultCredentials = True
'smtpClient.EnableSsl = True
Return "OK"
Catch ex As Exception
Return ex.Message
Finally
End Try
Return Nothing
End Function
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: