1 设置Winsock控件的通信协议(TCP),远程主机ip,远程连接端口(通常为25) 。然后连接远程主机 。eg,Winsock1.Protocol = sckTCPProtocol
Winsock1.RemoteHost = "smtp.126.com"
Winsock1.RemotePort = 25
Winsock1.Connect
2 如果winsock接受到的服务器的回应码为220,表明服务器端接受了客护端的连接请求 。这样可以进行下一步的通信:客户端发送EHLO消息,该消息表示客户希望基于ESMTP协议的电子邮件传递 。
eg,winsock1.senddata("EHLO xiaopeng"+VBcrlf)
3 如果winsock接受到服务器的回应码为250,表明服务器接受了客户端的通过ESMTP发送邮件的请求 。
这样可以进行下一步的通信:客户端发送AUTH LOGIN消息 。
eg, winsock1.senddata("AUTH LOGIN"+VBcrlf)
4 如果winsock接收到服务器的回应码为334,表明服务器启动了一个认证过程 。下一步期待用户输入用户名。
eg, winsock1.senddata(Encode64("username")+VBcrlf)
5 如果winsock接收到服务器的回应码为334,表明服务器已经接受了用户名 , 下一步期待用户输入密码 。
eg,winsoc1.senddata(Encode64("password")+VBcrlf)
6 如果winsock接收到服务器的回应码为235 , 表明认证成功完成 。接着客户就可以发邮件了 。
发邮件具体过程如下:
(1)客户端发送"mail from:"消息,该消息包含了发送人的email
eg, winsock1.sendata("mail from:"+chr(32)+"xiaopeng.qi@126.com"+VBcrlf)
(2)当客户端接收到250,则继续发送"rcpt to:"消息 , 它包含了收件人的邮件地址 。
eg, winsock1.senddata("rcpt to:"+chr(32)+"linglingxp@126.com"+VBcrlf)
(3)当客户端接收到250,则继续发送“data”消息,它通知邮件服务器随后客户断将发送电子邮件数据 。
eg, winsock1.senddata("data"+VBcrlf)
(4)客户端如果接收到354的消息,客户端将发送电子邮件数据 。电子邮件的数据包括以下字段:
Date,From,To,X-Mailer以及邮件正文 。电子邮件以"."结束 。
eg,winsock1.senddata("Date:"+chr(32)+format(Date,"Ddd")","format(Date,"dd Mmm YYYY")""format(Time,"hh:mm:ss")"""-0600"+VBcrlf)
winsock1.senddata("From:"+chr(32)+"xiaopeng"+VBcrlf)
winsock1.senddata("X-Mailer: vbemailsender"+VBcrlf)
winsock1.senddata("To:"+chr(32)+"lingling"+VBcrlf)
winsock1.senddata("Subject:"+chr(32)+"how are you"+VBcrlf)
winsock1.sendtada("ni hao ma"+VBcrlf)
winsock1.senddata("."+VBcrlf)
(5)如果客户端接收到250的消息 , 表明电子邮件数据被成功发送 。此时客户端如果希望与服务器断开连接,发送"quit"消息即可 。如果客户端接收到221的消息,表明服务器已经终止了基于ESMTP协议的连接 。
eg,winsock1.senddata("quit"+VBcrlf)
需要说明的地方:
Encode64 这是一个用于Base64编码的函数(关于函数的功能以及为什么要进行Base64编码大家可以到网上查),至于算法,说实话,我也再找(希望有人能提供)...
如何用VB.Net收发邮件在Identity2.0里面封装vb.net126邮箱了IIdentityMessageService接口vb.net126邮箱,可以用来发送接收邮件 。
看看
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 = "邮箱登录名"
dimsentFrom = "vb.net126邮箱你vb.net126邮箱的邮箱地址"
dim pwd= "邮箱登录密码";
dim client as new System.Net.Mail.SmtpClient("smtp服务器地址")
client.Port = 25'mtp邮件服务器端口
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network
推荐阅读
- word文档转xps格式,docx怎么转换成wps文档
- 生孩子什么叫撕裂视频,生孩子时撕裂是什么意思
- mac钉钉直播如何放大,钉钉直播怎么放大
- linux命令界面乱码 linux中文乱码
- 关于网络电视怎么放ppt的信息
- b站查看虚拟主播直播情况,b站的虚拟主播怎么没了
- 查重数组js,js编写函数查找数组中重复出现的数字
- 怎么查看电脑硬盘健康,电脑怎么查看硬盘使用情况
- pg数据库sequence,pg数据库全称