vb.net邮件接收程序 vb调用outlook发送html邮件

我用vb.net 弄了个jmail接收邮件,但是运行报错,请各位帮忙看下到底是什么问题,非常感谢!

JMAIL组件没有安装。或注册。。

创新互联建站专注于精河企业网站建设,自适应网站建设,电子商务商城网站建设。精河网站建设公司,为精河等地区提供建站服务。全流程按需网站建设,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

最好下载4.4pro破解版安装。

或者regsvr32 注册下 dll文件

VB如何接收邮件

Visual Basic 6中发送邮件的新方法

用VB6编写发送邮件的程序,有多种E-mail组件可供选择,如MAPIMessages、IIS4.0附带的CDONTS(NTS Collaboration Data Objects)以及许多第三方厂商开发的Email软件等。本文介绍用CDONTS开发VB下的邮件程序方法。

1. 确认已安装SMTP服务器

首先,必须确认在IIS服务器上已安装SMTP服务器,这是安装Option Pack时被缺省安装的选项。如果SMTP服务器已安装,在System32目录下会存在一个名为cdonts.dll的文件。

2. 最简单的邮件发送程序

以下是一个最简单的邮件发送程序,它由me@hotmail.net向abc@263.net发出一封标题为“Title”、内容为“Hello”的E-mail:

Private Sub cmdSendMail_Click()

Dim objMail as Object

Set objMail=CreateObject("CDFONTS.DLL")

ObjMail.Send "me@hotmail.net ", "abc@263.net","Title","Hello"

Set objMail=nothing

End Sub

3. 发送邮件附件

如果有附加的文件需要随同邮件传送,可以使用CDONTS的AttachFile方法:

Private Sub cmdSendMail_Click()

Dim objMail as Object

Set objMail=CreateObject("CDFONTS.DLL")

With ObjMail

.From= "me@hotmail.net "

.To= "abc@263.net"

.Subject="Title"

.Body="Hello"

.AttachFile "c:\document\ sample.doc","sample.doc"

.Send

End With

Set objMail=nothing

End Sub

4. CDONTS组件常用属性和方法

CDONTS组件常用的属性和方法列举如下:

属性:

Version:返回CDONTS组件的版本号

MailFormat:邮件格式,1-普通文本类型;0-MIME类型

Cc:设置一个或多个参阅的邮件地址

From:邮件发送者的地址

To :邮件接受者的地址

Subject:标题

Body:内容

BodyFormat:内容格式,1-普通文本;0-超文本

方法:

AttachFile:附加一个文件

AttachURL:附加一个地址

Send:发送邮件

5. 发送超文本格式的E-mail

你一定见到过许多使用超文本格式的E-mail,其中不但可以有图片、声音,甚至还可以嵌入动画。如果给你的朋友也发送一封这样的邮件,一定会带给他(她)意外的惊喜,因为这用一般的邮件发送程序是无能为力的。以下使用CDONTS组件发送一个HTML格式的邮件,其中包含有一幅名为sample.gif的图片,程序如下:

Private Sub cmdSendMail_Click()

Dim objMail as Object

Set objMail=CreateObject("CDFONTS.DLL")

Dim strHTML as String

StrHTML=""

StrHTML= StrHTML+""

StrHTML = StrHTML +"

用CDONTS发送Email的例子"

StrHTML= StrHTML+"

"

StrHTML= StrHTML+"

以上例子嵌入了图片sample.gif

"

StrHTML= StrHTML+""

With ObjMail

.From= "me@hotmail.net "

.To= "abc@263.net"

.Subject="Title"

.Body=strHTML

.AttachURL "c:\mydata\sample.gif","sample.gif"

.BodyFormat=0

.EmailFormat=0

.Send

End With

Set objMail=nothing

End Sub

到这里,相信大家一定发现SMTP邮件处理的一个缺陷了。SMTP服务器接收你的输出消息,但并不做发送者名字和地址的验证,这本是由SMTP的异步发送机制所决定的,但有人可能别有用心地用它来假扮别人发送邮件!本文强烈建议各位切勿轻易试用,一旦让ISP知道你的行径,你的帐号极可能会被立即删除。

如何用VB.Net收发邮件

在Identity2.0里面封装了IIdentityMessageService接口,可以用来发送接收邮件。

看看

Imports System.Threading.Tasks

Imports System.Security.Claims

Imports Microsoft.AspNet.Identity

Imports Microsoft.AspNet.Identity.EntityFramework

Imports Microsoft.AspNet.Identity.Owin

Imports Microsoft.Owin

Imports Microsoft.Owin.Security

public function SendAsync(message as IdentityMessage) as task

dim credentialUserName = "邮箱登录名"

dim sentFrom = "你的邮箱地址"

dim pwd= "邮箱登录密码";

dim client as new System.Net.Mail.SmtpClient("smtp服务器地址")

client.Port = 25'mtp邮件服务器端口

client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network

client.UseDefaultCredentials = false

dim credentials as new System.Net.NetworkCredential(credentialUserName, pwd)

client.EnableSsl = true

client.Credentials = credentials

dim mail as new System.Net.Mail.MailMessage(sentFrom, message.Destination)

mail.Subject = message.Subject

mail.Body = message.Body

return client.SendMailAsync(mail)

end function

vb制作邮箱收信程序

我只有ACCESS的VBA代码供你参考,vba与vb很多代码是可以共用的,你不妨参与研究下:

ACCESS发送邮件代码

access 2009-02-11 16:41 阅读23 评论0 字号: 大大 中中 小小 Private Sub Command1_Click() '发送邮件,依据ACCESS开发答疑200问P226页

'首先,确保已经安装了OutLook,然后在引用中引用Microsoft OutLook对象,在输入以下代码就可实现创建一个新邮件,并添加一个附件到邮件中,然后发送邮件的功能。

'通过引用OutLook.Application对象,Access可以循环OutLook对象里面的所有内容,例如可以读取OutLook里的所有邮件、联系人、约会、日记等信息,还可修改OutLook内置的“规则精灵”

'的内容。

Dim myOlApp As Object

Dim myNamespace As Object

Set myOlApp = CreateObject("OutLook.Application") '创建OutLook应用程序对象

Set myNamespace = myOlApp.getNamespace("MAPI") '获取MAPI命名空间

Set myFolder = myNamespace.getDefaultFolder(6) '获取默认的文件夹

Set myitem = myOlApp.CreateItem(0) '创建新邮件

myitem.Display

Set myRecipient = myitem.Recipients.Add("rcylbx@21cn.com") '为邮件添加收件人

myRecipient.Type = 1

myitem.Subject = "test" '设置邮件主题

MsgBox "ok"

myitem.Attachments.Add ("d:\test.txt") '添加邮件附件,注意确保硬盘下有这个文件

myitem.Save

myitem.Send

MsgBox "ok"

End Sub

Private Sub Command2_Click()

'代码说明:

'本代码可以在安装了outlook(2000以上版本的)的机器上运行。不过outlook xp 以上

'的版本由于出于防止邮件病毒的目的,对发送邮件进行监控,运用本程序每发送一封

'email都需要用户确认,会有点麻烦,但是还是出于安全的角度考虑。

'可以将这段代码嵌入access的模块?excel的宏中运行?

'程序要求:

'需要引用 "microsoft outlook x.x library"

'代码:

Dim olkapp As Outlook.Application '在使用outlook之前必须先声明outlook应用程序的对象,应用程序

Dim newmail As MailItem '在使用outlook之前必须先声明outlook应用程序的对象,邮件项目对象

Dim emailadd, para As String

Set olkapp = CreateObject("outlook.application") '指定outlook应用程序的实体变量

Set newmail = olkapp.CreateItem(olMailItem) '指定邮件项目的实体变量

'邮件正文内容

para = para + "祝新春快乐,并友情提醒注意新的邮件病毒。"

'收件人的email地址,这里没有输入内容。

emailadd = "rcylbx@21cn.com"

With newmail

.To = emailadd '发送邮件地址

.Subject = "新春快乐" ' 邮件的主题

.Importance = olImportanceHigh '邮件的为重要等级

.Body = para '将邮件正文内容指定para变量内容

'.Send '发送

.Display '启动视窗

End With

On Error GoTo continue

SendEmail:

newmail.Display

DoEvents

SendKeys "%s", Wait:=True

DoEvents

AppActivate newmail

GoTo SendEmail '发送不成功誓不罢休

continue:

On Error GoTo 0

Set olkapp = Nothing

Set newmail = Nothing

End Sub

Sub email_send()

Dim olkapp As Outlook.Application

Dim newmail As MailItem

Dim emailadd, para As String

Set olkapp = CreateObject("outlook.application")

Set newmail = olkapp.CreateItem(olMailItem)

'邮件正文内容

para = para + "祝新春快乐,并友情提醒注意新的邮件病毒。"

'收件人的email地址,这里没有输入内容。

emailadd = ""

With newmail

.To = emailadd

.Subject = "新春快乐" ' 邮件的主题

.Importance = olImportanceHigh '邮件的为重要等级

.Body = para '将邮件正文内容指定para变量内容

.Send '发送

End With

End Sub

Private Sub Command3_Click()

'方法一是用代码模拟发送邮件确认 (代码引用论坛前辈的代码)

Dim objOL As Object

Dim itmNewMail As Object

'引用Microsoft Outlook 物件模型

Set objOL = CreateObject("Outlook.Application")

Set itmNewMail = objOL.CreateItem(olMailItem)

With itmNewMail

.Subject = "chijanzen Mail Test" '主旨

.Body = "发送邮件测试2222" '本文

.To = "rcylbx@21cnl.com" '收件者

.Attachments.Add "d:\test.txt", olByValue, 1, "4th Quarter 1996 Results Chart"

.Display '启动视窗

End With

On Error GoTo continue

SendEmail:

AppActivate itmNewMail

DoEvents

SendKeys "%s", Wait:=True

DoEvents

AppActivate itmNewMail

GoTo SendEmail '发送不成功誓不罢休

continue:

On Error GoTo 0

Set objOL = Nothing

Set itmNewMail = Nothing

'再次测试中发现,窗口标题为中文时,AppActivate命令不能执行。将AppActivate命令改为Display方法,可解决此问题,即将AppActivate itmNewMail改为itmNewMail.display。

End Sub

'方法一是用代码模拟发送邮件确认 (代码引用论坛前辈的代码)

Sub SendMail()

Dim objOL As Object

Dim itmNewMail As Object

'引用Microsoft Outlook 物件模型

Set objOL = CreateObject("Outlook.Application")

Set itmNewMail = objOL.CreateItem(olMailItem)

With itmNewMail

.Subject = "chijanzen Mail Test" '主旨

.Body = Application.UserName "发送邮件测试2222" '本文

.To = "171262953@qq.com" '收件者

.Attachments.Add "C:\PDOS.DEF", olByValue, 1, "4th Quarter 1996 Results Chart"

.Display '启动视窗

End With

On Error GoTo continue

SendEmail:

AppActivate itmNewMail

DoEvents

SendKeys "%s", Wait:=True

DoEvents

AppActivate itmNewMail

GoTo SendEmail '发送不成功誓不罢休

continue:

On Error GoTo 0

Set objOL = Nothing

Set itmNewMail = Nothing

End Sub

'再次测试中发现,窗口标题为中文时,AppActivate命令不能执行。将AppActivate命令改为Display方法,可解决此问题,即将AppActivate itmNewMail改为itmNewMail.display。

**************************************

***************************************

Sub Send_Order_Mail()

Dim cnn As ADODB.Connection

Dim rst_cusid, rst_order_list As ADODB.Recordset

Dim olkapp As Outlook.Application

Dim newmail As MailItem

Set olkapp = CreateObject("outlook.application")

Set cnn = New ADODB.Connection

cnn.Open CurrentProject.Connection

Set rst_cusid = New ADODB.Recordset

rst_cusid.Open "select distinct CustomerID,CompanyName,Email from v_order_list", cnn, adOpenKeyset, adLockReadOnly

If rst_cusid.RecordCount 1 Then Exit Sub

Set rst_order_list = New ADODB.Recordset

For i = 1 To rst_cusid.RecordCount

rst_order_list.Open "select * from v_order_list where CustomerID = " + "'" + rst_cusid.Fields(0) + "'", cnn, adOpenKeyset, adLockReadOnly

With rst_order_list

para = "Dear " + .Fields(1) + ":" + Chr(10)

para = para + Space(3) + "Your Company " + .Fields(0) + " has Order those Good:" + Chr(10)

For j = 1 To .RecordCount

para = para + Space(3) + "Good Name :" + .Fields(2) + " Order Date :" + CStr(.Fields(3)) + " Price:" + CStr(.Fields(4)) + Chr(10)

Next

End With

rst_order_list.Close

para = para + Space(30) + "Yours Loadhigh" 'para为信件内容

Set newmail = olkapp.CreateItem(olMailItem)

With newmail

.To = rst_cusid.Fields(2) '接收邮件的信箱

.Subject = rst_cusid.Fields(1) + " Order List" '信件标题

.Body = para

.Send '发送

End With

rst_cusid.MoveNext

para = ""

Next

rst_cusid.Close

Set rst_cusid = Nothing

Set rst_order_list = Nothing

cnn.Close

Set cnn = Nothing

End Sub

***********************************************************

Function test1()

Dim objMail As MailItem

Dim objAttachments As Attachment

Dim App As New Outlook.Application

Set objMail = App.CreateItem(olMailItem)

objMail.Save

Set objAttachments = objMail.Attachments.Add("c:\temp\a.xls", olByValue, 1, "a.xls")

With objMail

.To = "chenge@shtip.com.cn" '接收邮件的信箱

.Subject = "test" '信件标题

.Body = "test"

.Send '发送

End With

'objMail.Display

End Function

*********************************************************

VBScript code

Set Msg =

CreateObject("CDO.Message")

With Msg

.To = "someone@microsoft.com"

.From = "userX@microsoft.com"

.Subject = "Lunch meeting"

.TextBody = "I have attached the suggested menu."

.AddAttachment ""

.Send

End With

另,若因发垃圾邮件被163.com封账号,可以联系客服解释是电脑中了病毒。


名称栏目:vb.net邮件接收程序 vb调用outlook发送html邮件
文章起源:http://pwwzsj.com/article/doioicg.html