内部SMTP server,用System.Web.Mail.SmtpMail发送邮件,能正常收到,说明server没问题。但现用VB6.0的Winsock SendData,也不知道邮件发出去没有,反正在接收方的收件箱(包括垃圾箱),都没有找到邮件的影子。使用的控件有:Winsock控件,CommandButton控件,TextBox 控件这三个。目标是点击Button以后,向内部某邮箱发送文本邮件。TextBox是用来记录Winsock状态的。
编程如下:
1.声明变量
2.把如下代码加到Command1的Command1_Click事件:
Private Sub Command1_Click()
Winsock1.LocalPort = 0 '设置本地使用的端口
Winsock1.Protocol = sckTCPProtocol '设置Winsock控件使用的协议,TCP或UDP。
Winsock1.RemoteHost="gsmail.gitec.gitem.net" '设置发送Email的服务器,现使用公司内部邮件服务器
Winsock1.RemotePort = 25 '设置要连接的远程端口号
Winsock1.Connect '返回与远程计算机的连接。
End Sub 3.Winsock1的Connect事件:
Private Sub Winsock1_Connect() ''当一个 Connect 操作完成时发生
first = "mail from:" + Chr(32) + "[email protected]" + vbCrLf '发信人地址
Second = "rcpt to:" + Chr(32) + "[email protected]" + vbCrLf '收信人地址
DateNow = Format(Date, "Ddd") & ", " & Format(Date, "dd Mmm YYYY") & " " & Format(Time, "hh:mm:ss") & "" & " -0600"
Third = "Date:" + Chr(32) + DateNow + vbCrLf '开始发信时间
Fourth = "From:" + Chr(32) + "justinzhu" + vbCrLf '发信人姓名
Fifth = "To:" + Chr(32) + "yingzizhu"+ vbCrLf '收信人姓名
Sixth = "Subject:" + Chr(32) +"EmailTest" + vbCrLf '发信的主题
Seventh = "EmailTestVB" + vbCrLf '发信的内容
Ninth = "X-Mailer: anyMail v1.1" + vbCrLf
Eighth = Fourth + Third + Ninth + Fifth + Sixth
Winsock1.SendData ("HELO gsmail.gitesystems.com" + vbCrLf) '开始发送
Winsock1.SendData (first)
Winsock1.SendData (Second)
Winsock1.SendData ("data" + vbCrLf)
Winsock1.SendData (Eighth + vbCrLf)
Winsock1.SendData (Seventh + vbCrLf)
Winsock1.SendData ("." + vbCrLf)
Winsock1.SendData ("quit" + vbCrLf)
End Sub 4. Winsock1的DataAmival事件:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) '接受数据时产生
On Error Resume Next '在错误处理程序结束后,恢复原有的运行
Dim webData As String
Winsock1.GetData webData, vbString '取得发信后的反馈信息,可以检查是否错误
Text1.Text = Text1.Text + webData
End Sub 发送完成以后,电脑右下角状态栏有信封闪动,一秒钟后信封消失。但收件人的收件箱确实没有邮件,垃圾箱也没有。
以下是Text1内的文本
Text1220 gsmail.gitesystems.com Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at Thu, 20 Mar 2008 09:25:20 +0800
250 gsmail.gitesystems.com Hello [192.168.6.39]
250 2.1.0 [email protected] OK
250 2.1.5 [email protected]
354 Please start mail input.
250 Mail queued for delivery.
221 Closing connection. Good bye.
哪位高手帮忙分析一下?
我半路出家对VB很不熟,问题解决马上给分……
谢谢先
编程如下:
1.声明变量
2.把如下代码加到Command1的Command1_Click事件:
Private Sub Command1_Click()
Winsock1.LocalPort = 0 '设置本地使用的端口
Winsock1.Protocol = sckTCPProtocol '设置Winsock控件使用的协议,TCP或UDP。
Winsock1.RemoteHost="gsmail.gitec.gitem.net" '设置发送Email的服务器,现使用公司内部邮件服务器
Winsock1.RemotePort = 25 '设置要连接的远程端口号
Winsock1.Connect '返回与远程计算机的连接。
End Sub 3.Winsock1的Connect事件:
Private Sub Winsock1_Connect() ''当一个 Connect 操作完成时发生
first = "mail from:" + Chr(32) + "[email protected]" + vbCrLf '发信人地址
Second = "rcpt to:" + Chr(32) + "[email protected]" + vbCrLf '收信人地址
DateNow = Format(Date, "Ddd") & ", " & Format(Date, "dd Mmm YYYY") & " " & Format(Time, "hh:mm:ss") & "" & " -0600"
Third = "Date:" + Chr(32) + DateNow + vbCrLf '开始发信时间
Fourth = "From:" + Chr(32) + "justinzhu" + vbCrLf '发信人姓名
Fifth = "To:" + Chr(32) + "yingzizhu"+ vbCrLf '收信人姓名
Sixth = "Subject:" + Chr(32) +"EmailTest" + vbCrLf '发信的主题
Seventh = "EmailTestVB" + vbCrLf '发信的内容
Ninth = "X-Mailer: anyMail v1.1" + vbCrLf
Eighth = Fourth + Third + Ninth + Fifth + Sixth
Winsock1.SendData ("HELO gsmail.gitesystems.com" + vbCrLf) '开始发送
Winsock1.SendData (first)
Winsock1.SendData (Second)
Winsock1.SendData ("data" + vbCrLf)
Winsock1.SendData (Eighth + vbCrLf)
Winsock1.SendData (Seventh + vbCrLf)
Winsock1.SendData ("." + vbCrLf)
Winsock1.SendData ("quit" + vbCrLf)
End Sub 4. Winsock1的DataAmival事件:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) '接受数据时产生
On Error Resume Next '在错误处理程序结束后,恢复原有的运行
Dim webData As String
Winsock1.GetData webData, vbString '取得发信后的反馈信息,可以检查是否错误
Text1.Text = Text1.Text + webData
End Sub 发送完成以后,电脑右下角状态栏有信封闪动,一秒钟后信封消失。但收件人的收件箱确实没有邮件,垃圾箱也没有。
以下是Text1内的文本
Text1220 gsmail.gitesystems.com Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at Thu, 20 Mar 2008 09:25:20 +0800
250 gsmail.gitesystems.com Hello [192.168.6.39]
250 2.1.0 [email protected] OK
250 2.1.5 [email protected]
354 Please start mail input.
250 Mail queued for delivery.
221 Closing connection. Good bye.
哪位高手帮忙分析一下?
我半路出家对VB很不熟,问题解决马上给分……
谢谢先
解决方案 »
- msflexgrid上如何换行?
- 如何获得其他程序中的第二个下拉列表句柄?
- 谁知道怎么从USB的红外线读出信息
- DataReport报表程序在未安装vb的98下运行提示msdbrptr.dll版本过期?该怎么解决?
- 怎么運行后不能往newdb數据庫添加數据表?
- VB脚本求解释
- 如何将某个目录下的某一类文件全部查询出来?
- 如何安裝Exchange郵件服務
- 高手们,请帮忙,怎样查找商品编码的第二位与第三位为“01”的所有商品的商品资料?
- 请问在数据库网格控件中,是TrueDBGrid70好呢?还是VSFlexGridPro好呢?
- webbrowser问题
- msflexgrid 如何一下显示多条数据而不是1条1条的显示
点击Button发送邮件。此时电脑右下角状态栏有信封闪动,一秒钟后信封消失。但收件人的收件箱确实没有邮件,垃圾箱也没有。
以下是Text1内的文本。
Text1220 gsmail.gitesystems.com Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at Thu, 20 Mar 2008 09:25:20 +0800
250 gsmail.gitesystems.com Hello [192.168.6.39]
250 2.1.0 [email protected] OK
250 2.1.5 [email protected]
354 Please start mail input.
250 Mail queued for delivery.
221 Closing connection. Good bye.
Dim objSmtpServer As System.Web.Mail.SmtpMail
mmMail.From = "ABC"
mmMail.To = "[email protected]" mmMail.Subject = "just test"
mmMail.BodyFormat = Mail.MailFormat.Html
mmMail.Body = "邮件体"
objSmtpServer.SmtpServer = "gsmail.gitec.gitem.net"
objSmtpServer.Send(mmMail)
点击Button发送邮件。此时电脑右下角状态栏有信封闪动,一秒钟后信封消失。但收件人的收件箱确实没有邮件,垃圾箱也没有。
以下是Text1内的文本。
Text1220 gsmail.gitesystems.com Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at Thu, 20 Mar 2008 09:25:20 +0800
250 gsmail.gitesystems.com Hello [192.168.6.39]
250 2.1.0 [email protected] OK
250 2.1.5 [email protected]
354 Please start mail input.
250 Mail queued for delivery.
221 Closing connection. Good bye. 还忘了说,有一个Symantec Email Proxy 弹出警告框
You email message was unable to be sent because your mail server rejected the message: 554 5.1.0 Sender Denied由于是内部SMTP server,所以是不需要用户名和密码验证,就可以向内部邮箱发信的。这个在VB.NET里验证过