社区
VB基础类
帖子详情
请问需要登录认证的smtp服务器是如何与客户机交互的?
qaymuic
2001-07-28 08:52:05
请问需要登录认证的smtp服务器是如何与客户机交互的,例如,想从smtp.sina.com.cn发送一封邮件,应该怎样与它交流?直接发送helo是不行的,会返回502错误。
...全文
853
11
打赏
收藏
请问需要登录认证的smtp服务器是如何与客户机交互的?
请问需要登录认证的smtp服务器是如何与客户机交互的,例如,想从smtp.sina.com.cn发送一封邮件,应该怎样与它交流?直接发送helo是不行的,会返回502错误。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dapha
2002-07-09
打赏
举报
回复
Public Function Base64_Encode(strSource) As String 'base64的源码。是发邮件用的。
Const BASE64_TABLE As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Dim strTempLine As String
Dim j As Integer
For j = 1 To (Len(strSource) - Len(strSource) Mod 3) Step 3
strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j, 1)) \ 4) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, ((Asc(Mid(strSource, j, 1)) Mod 4) * 16 _
+ Asc(Mid(strSource, j + 1, 1)) \ 16) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, ((Asc(Mid(strSource, j + 1, 1)) Mod 16) * 4 _
+ Asc(Mid(strSource, j + 2, 1)) \ 64) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j + 2, 1)) Mod 64) + 1, 1)
Next j
If Not (Len(strSource) Mod 3) = 0 Then
If (Len(strSource) Mod 3) = 2 Then
strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j, 1)) \ 4) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j, 1)) Mod 4) * 16 _
+ Asc(Mid(strSource, j + 1, 1)) \ 16 + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j + 1, 1)) Mod 16) * 4 + 1, 1)
strTempLine = strTempLine & "="
ElseIf (Len(strSource) Mod 3) = 1 Then
strTempLine = strTempLine + Mid(BASE64_TABLE, Asc(Mid(strSource, j, 1)) \ 4 + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j, 1)) Mod 4) * 16 + 1, 1)
strTempLine = strTempLine & "=="
End If
End If
Base64_Encode = strTempLine
End Function
Private Enum SMTP_State
MAIL_CONNECT
MAIL_HELO
MAIL_USER
MAIL_PASS
MAIL_LOGIN
MAIL_FROM
MAIL_RCPTTO
MAIL_DATA
MAIL_DOT
MAIL_QUIT
End Enum
Private m_State As SMTP_State
Private Sub Form_Load()
Winsock1.Connect "smtp.163.com", 25
m_State = MAIL_CONNECT
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strServerResponse As String
Dim strResponseCode As String
Dim strDataToSend As String
Dim strMessage As String
Winsock1.GetData strServerResponse
Debug.Print strServerResponse
strResponseCode = Left(strServerResponse, 3)
If strResponseCode = "250" Or _
strResponseCode = "220" Or _
strResponseCode = "354" Or _
strResponseCode = "334" Or _
strResponseCode = "235" Then
Select Case m_State
Case MAIL_CONNECT
m_State = MAIL_HELO
strDataToSend = "abc@163.com"
strDataToSend = Left$(strDataToSend, _
InStr(1, strDataToSend, "@") - 1)
Winsock1.SendData "HELO " & strDataToSend & vbCrLf
'
Debug.Print "HELO " & strDataToSend
'
Case MAIL_HELO
m_State = MAIL_USER
Winsock1.SendData "AUTH LOGIN" & vbCrLf
Debug.Print "正在校验用户"
Case MAIL_USER
m_State = MAIL_PASS
Winsock1.SendData (Base64_Encode("用户名")) & vbCrLf
Debug.Print "正在校验密码"
Case MAIL_PASS
m_State = MAIL_LOGIN
Winsock1.SendData (Base64_Encode("密码")) & vbCrLf
Debug.Print "成功登陆服务器"
Case MAIL_LOGIN
m_State = MAIL_FROM
Winsock1.SendData "MAIL FROM:" & "ghost@163.com" & vbCrLf
Debug.Print "MAIL FROM:" & "ghost@163.com"
Case MAIL_FROM
m_State = MAIL_RCPTTO
Winsock1.SendData "RCPT TO:" & "abc@163.com" & vbCrLf
Debug.Print "RCPT TO:" & "abc@163.com"
Case MAIL_RCPTTO
m_State = MAIL_DATA
Winsock1.SendData "DATA" & vbCrLf
Debug.Print "DATA"
Case MAIL_DATA
m_State = MAIL_DOT
Winsock1.SendData "From:" & "ghost" & " <" & "ghost@163.com" & " > " & vbCrLf
Winsock1.SendData "Subject:" & "ghost" & vbCrLf & vbCrLf
strMessage = " ghost"
Winsock1.SendData strMessage & vbCrLf
Winsock1.SendData "." & vbCrLf
Debug.Print "."
Case MAIL_DOT
m_State = MAIL_QUIT
Winsock1.SendData "QUIT" & vbCrLf
Debug.Print "QUIT"
Case MAIL_QUIT
Winsock1.Close
End Select
End If
End Sub
Chice_wxg
2002-07-09
打赏
举报
回复
http://www.china-askpro.com/msg38/qa75.shtml
希望对你有帮助
其实就是多了个AUTH命令,不过需要M64编码
qaymuic
2001-10-19
打赏
举报
回复
如何验证?
xhstudio
2001-09-29
打赏
举报
回复
我看到了
在电脑爱好者上有
好像是前几期
和正常的POP方式差不多只是多的密码验正啊
你找一下吧
qaymuic
2001-07-30
打赏
举报
回复
who know?
xhstudio
2001-07-30
打赏
举报
回复
没有人知道吗,不会吧????????????
chenfeng3000
2001-07-30
打赏
举报
回复
我也想知道
raeck
2001-07-29
打赏
举报
回复
up
qaymuic
2001-07-29
打赏
举报
回复
求救
qaymuic
2001-07-28
打赏
举报
回复
没人回答吗?
qaymuic
2001-07-28
打赏
举报
回复
盼复
postfix与
smtp
认证
基本的
smtp
协议没有验证用户身份的能力。虽然信封上的寄件人地址已经隐含了发信者的身份,然而,由于信封地址实在太容易假造,所以不能当成身份凭据。 为了判断客户端是否有权使用转发服务(relay),
服务器
端必须确认客户端(寄件人)是否当真是对方所自称的那个人。在不能以寄件人地址为×××书的前 提下,
smtp
势必
需要
其他补充机制,才能验证客户端的身份。 从postfix的角...
SMTP
发送邮件
是为
SMTP
S(
SMTP
-over-SS)协议开放的,使用SSL加密信息,可以防止黑客截取邮件,但并未得到IETF机构的
认证
,
SMTP
/
SMTP
S之间关系类似于HTTP/HTTPS。TLS/STARTTLS,基于身份验证的,使用该端口的
SMTP
服务 客户端必须要
登录
验证身份才能发送邮件,有效的避免垃圾邮件。
SMTP
即简单邮件传输协议,基于TCP提供可靠的邮件传输,它是一个推协议,如果使用邮件客户端收取邮件则
需要
用POP3协议。通过代码发送邮件是程序最基本的功能,比如监控程序告警邮件,客户营销邮件等。
在windows实现和
smtp
交互
发送邮件
目录1 定义2 协议原理3 配置方法4 工作机制5 工作过程6 X.25上应用7 垃圾邮件8 服务扩展9 通讯模型10 通信安全11 常见问题定义
SMTP
是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议。
SMTP
是建立在 TCP上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。[1]
SMTP
独立于特定的传输子系统,且只
需要
可靠有序的数据流信道支持。
SMTP
...
SMTP
服务使用
问题场景:配置jenkins的时候,可以设置邮件通知。名词解析:
SMTP
协议与人们用于面对面
交互
的礼仪之间有许多相似之处。首先,运行在发送端邮件
服务器
主机上的
SMTP
客户,发起建立一个到运行在接收端邮件服务 器主机上的
SMTP
服务器
端口号25之间的TCP连接。如果接收邮件
服务器
当前不在工作,
SMTP
客户就等待一段时间后再尝试建立该连接。
SMTP
客户和
服务器
先执行一些应用层握手操作。就像人们在转手东西
SMTP
协议详解及工作过程
1、
SMTP
协议简介
SMTP
称为
VB基础类
7,785
社区成员
197,585
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章