为什么我用126,163,qq,gmail都没有办法实现VB发邮件

来源:百度知道 编辑:UC知道 时间:2024/05/10 14:19:19
Option Explicit

Private Sub Command1_Click()
SendMail "测试\", "我爱你\", "D:\重要文本\2.txt"
MsgBox "OK"
End Sub

Sub SendMail(Optional ByVal sSubject As String, Optional ByVal sBody As String, Optional ByVal sFileName As String)

Dim Jmail
Set Jmail = CreateObject("jmail.Message")
If sFileName <> "\" Then Jmail.AddAttachment sFileName '附件

Jmail.Charset = "gb2312"
Jmail.Silent = False
Jmail.Priority = 1 '邮件状态,1-5 1为最高
Jmail.MailServerUserName = "623102188" 'Email帐号
Jmail.MailServerPassWord = "*******" 'Email密码

Jmail.FromName = "邮件" '发信人姓名
Jmail.From = "623102188@qq.com" '发邮件地址地址

Jmail.Subject = sSubject '主题
Jmail.AddRecipient "837223585@qq.com" '收信人地址
Jmail.Body = sBody '信件正文

Jmail.

我用smtp协议可以就用一个winsock控件
我是根据这些写的

原帖及讨论:http://bbs.bc-cn.net/dispbbs.asp?BoardID=6&ID=166313

以前的smtp服务器大多都支持匿名邮件的发送,因此我们只要用Winsock连上服务器25端口,然后再发送几个命令和邮件的相关信息,就能实现发送E-mail了(现在从网上下载的许多关于VB发送电子邮件的例子都是通过这种匿名的方式)。但是现在支持匿名发送电子邮件的Smtp几乎没有了(谁知道,请告诉我一个),现在的Smtp都需要身份验证(ESmtp),下面我就说一下用Winsock实现ESmtp的几个步骤:

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接收到服