langzhi: 我编了一个发邮件的程序,但运行时好像要求SMTP验证! 求救!

langzhi 2001-11-30 01:12:21
...全文
212 17 打赏 收藏 举报
写回复
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
sonicdater 2001-12-02
  • 打赏
  • 举报
回复
我给你 说一下 base64 编码 原理:
简单的说, 就是 要求把 每3个 8位(bit) 的字节(byte) 转化为4个6位的字节。 这4个6位字节的最高2位是零,没有任何意义。 转化后的编码只能 是以下 字符 组成 : A-Z,a-z,0-9,+,/ 和 用来补足 位的 等号= 。

其它的 就是 我前面说的那些了。用 ehlo 命令 连接,用 auth 命令 进行认证。
把 帐号 和 密码 用 base64 编码后发送。
langzhi 2001-12-02
  • 打赏
  • 举报
回复
没人了吗
langzhi 2001-12-01
  • 打赏
  • 举报
回复
帮帮忙
ozarkgirl 2001-12-01
  • 打赏
  • 举报
回复
我在win98下运行编译好的vb程序,可他说“类未注册。查找对象,其CLSID为"{>00000010-0000-0010-8000-00AA006D2EA4}”还说“运行时错误713':类未注册。查找对象,其CLSID为"{>00000010-0000-0010-8000-00AA006D2EA4}”请大家帮忙看看,急,急,急
langzhi 2001-12-01
  • 打赏
  • 举报
回复
非要版主出面吗?
jill_yang 2001-12-01
  • 打赏
  • 举报
回复
如果我要发送不带附件的那种杂志,带有图片的那种,如何进行编码?
有谁可以告诉我把色base 64编码是怎么一回事?

langzhi 2001-11-30
  • 打赏
  • 举报
回复
继续
sonicdater 2001-11-30
  • 打赏
  • 举报
回复
不对 吧。 base64 部分 呢?

smtp 命令 和 esmtp 命令不一样哟。 是 ehlo
airflight 2001-11-30
  • 打赏
  • 举报
回复
Winsock1.Close
Winsock1.Connect
If Not WaitForResponse("220", 15) Then
StatusBar1.Panels(1).Text = "邮件服务器连接不上......"
Exit Sub
End If
StatusBar1.Panels(1).Text = "连接服务器" & frmMain.SMTPServerIp & "完毕"
'打开对话
Winsock1.SendData "HELO" & " " & Winsock1.LocalHostName & vbCrLf
If Not WaitForResponse("250", 10) Then
StatusBar1.Panels(1).Text = "无法打开邮件发送对话"
Exit Sub
End If
'开始SMTP认证
Winsock1.SendData "AUTH LOGIN" & " " & vbCrLf
If Not WaitForResponse("334", 10) Then
StatusBar1.Panels(1).Text = "无法进行认证"
Exit Sub
End If
StatusBar1.Panels(1).Text = "进行SMTP认证"
'传入认证所要用户名,Base64加密
encodestr frmMain.username, tmpstr
Winsock1.SendData tmpstr & vbCrLf
If Not WaitForResponse("334", 10) Then
StatusBar1.Panels(1).Text = "用户名无法进行认证"
Exit Sub
End If
'传入密码
tmpstr = ""
encodestr frmMain.userid, tmpstr
Winsock1.SendData tmpstr & vbCrLf
If WaitForResponse("553", 10) Then
StatusBar1.Panels(1).Text = "密码无法进行认证"
Exit Sub
End If
StatusBar1.Panels(1).Text = "验证完毕"
'发送发送方地址
Winsock1.SendData "MAIL FROM:" & " " & txtFrom & vbCrLf
If Not WaitForResponse("250", 10) Then
StatusBar1.Panels(1).Text = "无法发送发送方地址"
Exit Sub
End If
StatusBar1.Panels(1).Text = "发送发送方地址"
'发送接收方地址
Winsock1.SendData "RCPT TO:" & " " & txtTo & vbCrLf
If Not WaitForResponse("250", 10) Then
StatusBar1.Panels(1).Text = "无法发送接收方地址"
Exit Sub
End If
StatusBar1.Panels(1).Text = "发送接收方地址"
'发送消息体
Winsock1.SendData "DATA" & vbCrLf
If Not WaitForResponse("354", 10) Then
StatusBar1.Panels(1).Text = "无法进行发送信件内容"
Exit Sub
End If
StatusBar1.Panels(1).Text = "正在发送信件内容...."

Dim fnum As Integer
fnum = FreeFile()
Open App.Path & "\mail.tmp" For Input As #fnum
Winsock1.SendData mdata & vbCrLf
While Not EOF(fnum)
Line Input #fnum, strContent
Winsock1.SendData strContent & vbCrLf
Wend
Close #fnum
Winsock1.SendData "." & vbCrLf
If Not WaitForResponse("250", 20) Then
StatusBar1.Panels(1).Text = "信件内容发送不成功" & vbCrLf
Exit Sub
End If
StatusBar1.Panels(1).Text = "发送完毕,退出"
Winsock1.SendData "QUIT" & vbCrLf
If Not WaitForResponse("221", 10) Then
Exit Sub
End If
Winsock1.Close
StatusBar1.Panels(1).Text = "发送信件完成 "
langzhi 2001-11-30
  • 打赏
  • 举报
回复
如果找到了发到我的信箱好不好?
langzhi888@sohu.com

thank!!!
langzhi 2001-11-30
  • 打赏
  • 举报
回复
大家帮帮忙好不好。
sonicdater 2001-11-30
  • 打赏
  • 举报
回复
我现在 手上没资料,只记得

esmtp(Extended Simple Mail Transport Protocol) 用的是 EHLO 和 服务器 联系。

然后 象我上面说的,用 base64 编码,把 username password 发出去。

这类资料不好找呀。
daryl715 2001-11-30
  • 打赏
  • 举报
回复
我也想知道,upupupupupup
langzhi 2001-11-30
  • 打赏
  • 举报
回复
能给个例子吗?我对这方面不是很内行,刚学。
sonicdater 2001-11-30
  • 打赏
  • 举报
回复
有。 要用 esmtp 命令。 你现在、一定用的 是smtp 命令吧。

然后 还要 用 base64 编码,才能发出去。
langzhi 2001-11-30
  • 打赏
  • 举报
回复
就是发不了邮件,有什么办法通过验证吗?
zzgthc 2001-11-30
  • 打赏
  • 举报
回复
说清楚一点
有什麽问题?
相关推荐
发帖
VB基础类

7681

社区成员

VB 基础类
社区管理员
  • VB基础类社区
加入社区
帖子事件
创建了帖子
2001-11-30 01:12
社区公告
暂无公告