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 = "发送信件完成 "