请注意是收邮件的功能!并请给出代码,不盛感谢!
解决方案 »
- update自动序号问题
- 请教各位大哥匹配字符串的问题!!!
- ★★ 关于抓屏的一个很技术性的问题
- 如何在窗口里定义一个public的数组给其他窗口使用 谢谢
- 200分调查初吻
- 请问如何从声音曲线中分离出频率数据?一个频谱分析的问题(高手请进)
- 在线等待中......
- 如何用ado连接sqlserver7.0数据库(初学者)
- 中秋姐问题: 如何将一个按钮变成圆形的??(附源代码)
- 求救,怎么样用find查找满足两个条件的记录?mrstCustDep.Find "Cus_Id='" & tmpCustId & "'and Are_Code='" & tmpAreCode & "'"
- 关于Adodc1.RecordSource = "delete * from 库存表"问题
- 求一个分组后有多少行的sql语句怎么写?
问题:在我正常连接上SMTP邮件服务器(163.com)以后,打开对话( Winsock1.SendData "HELO" & " " & Winsock1.LocalHostName & vbCrLf)也成功后,开始发送发送方地址(xxx.163.com)可是服务器返回的响应文字告诉我553 You are not authorized to send mail as <MAIL FROM: [email protected]>, authentication is required
可能是信箱语法错误),请各位朋友告诉我怎么解决。源码
Option Explicit
Dim Information As String
Dim strSendName As String '发送人姓名
Dim strReceiveName As String ' 接收人姓名
Dim strFromMail As String '发送人地址
Dim strToMail As String '接收人地址
Dim m_Date As String '发送日期
Dim strSubject As String '主题
Dim strContent As String '正文
Private Function waitforresponse(strresponse As String, waittime As Integer) As Boolean
Dim waitst As Date
waitst = Now()
While InStr(1, Information, strresponse, vbTextCompare) < 1
DoEvents
If DateDiff("s", waitst, Now) > waittime Then
Information = ""
waitforresponse = False
Exit Function
End If
Wend
Information = ""
waitforresponse = True
End Function
Private Sub Command1_Click()
Text1.Text = ""
Winsock1.Close
Winsock1.Protocol = sckTCPProtocol
Winsock1.RemoteHost = "202.108.44.181"
'Winsock1.RemoteHost = "216.145.54.171"
'Winsock1.RemoteHost = "172.20.20.20"
Winsock1.RemotePort = 25
strSendName = txtSName.Text
strReceiveName = txtRName.Text
strFromMail = txtFrom.Text
strToMail = txtTo.Text
m_Date = Format(Date, "Ddd") & "," & Format(Date, "dd Mmm YYYY") & " " & _
Format(Time, "hh:mm:ss") & "" & "-600"
strSubject = txtSubject.Text
strContent = txtContent.Text
Dim mdata As String
'构造邮件标题字段
mdata = "From:" & Chr(32) & strSendName & vbCrLf & _
"Date:" & Chr(32) & m_Date & vbCrLf & _
"X-Mailer: BigAnt Smtp Mailer V1.0" & vbCrLf & _
"To:" & Chr(32) & strReceiveName & vbCrLf & _
"Subject:" & Chr(32) & strSubject & vbCrLf
Winsock1.Connect
If Not waitforresponse("220", 10) Then
Text1.Text = "邮件服务器连接不上...."
Exit Sub
End If
'MsgBox ("连接成功!")
Winsock1.SendData "HELO" & " " & Winsock1.LocalHostName & vbCrLf
If Not waitforresponse("250", 10) Then
Text1.Text = Text1.Text & "无法打开邮件发送对话!"
Exit Sub
End If
'发送发送方地址
Winsock1.SendData "MAIL FROM:" & " " & strFromMail & vbCrLf
If Not waitforresponse("250", 10) Then
Text1.Text = Text1.Text & "无法发送发送方地址!"
Exit Sub
End If
'发送接收方地址
Winsock1.SendData "RCPT TO:" & " " & strToMail & vbCrLf
If Not waitforresponse("250", 10) Then
Text1.Text = Text1.Text & "无法发送接收方地址!"
Exit Sub
End If
'发送消息体
Winsock1.SendData "DATA" & vbCrLf
If Not waitforresponse("354", 10) Then
Text1.Text = Text1.Text & "无法发送消息体!"
Exit Sub
End If
Winsock1.Close
End SubPrivate Sub Command2_Click()
Winsock1.SendData "HELO ZHONG " & vbCrLf
End SubPrivate Sub Command3_Click()
Winsock1.SendData "HELP" & vbCrLf
End SubPrivate Sub Form_Load()
Text1.Text = ""End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Close
End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Winsock1.GetData Information
Text1.Text = Text1.Text & Information & vbCrLf
End Sub
通过Winsock控件可以接收邮件
联接POP3服务器,并进行身份验证。
然后发送命令:
Winsock.SendDate "RETR n" & vbCrlf
其中n为邮件的序号
还有想请问一下,我们要做一个网站,其中给每个注册用户提供4M大小的邮箱,那么每个用户的用户名和密码应该保存在哪里?(很想知道正常情况下应该怎样存放,象sina,163这样的都是保存在哪里)。如果有几个用户同时访问会不会产生冲突,再次感谢!
关于源代码,你可以搜一下以前的帖子,或看一下FAQ.如果你需要给用户提供邮箱,可以考虑使用一些邮件服务器,比如IMail.如果非要自己写,可以放在数据库中,用户登录的时候实际上是在数据库中查找匹配纪录而已.
可是如果不做邮件服务器的话,在用户没有登录之前,别人发过来的邮件将是在哪里?又怎么会自动存入到数据库中?
发邮件我可以解决用Server.CreateObject("CDONTS.NewMail")和iis里的smtp就行。
但收邮件我就有点不明白了,在把别人发给我的邮件存入数据库之前它在哪里?又怎样存入数据库?
Cooly(☆回答问题不要分儿☆) :能否用QQ交流?40177602