有。 要用 esmtp 命令。 你现在、一定用的 是smtp 命令吧。然后 还要 用 base64 编码,才能发出去。

解决方案 »

  1.   

    我现在 手上没资料,只记得esmtp(Extended Simple Mail Transport Protocol) 用的是 EHLO 和 服务器 联系。 然后 象我上面说的,用 base64 编码,把 username password 发出去。 这类资料不好找呀。
      

  2.   

    如果找到了发到我的信箱好不好?
    [email protected]!!!
      

  3.   

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

  4.   

     不对 吧。 base64 部分 呢?  smtp 命令 和 esmtp 命令不一样哟。 是 ehlo
      

  5.   

    如果我要发送不带附件的那种杂志,带有图片的那种,如何进行编码?
    有谁可以告诉我把色base 64编码是怎么一回事?
      

  6.   

    我在win98下运行编译好的vb程序,可他说“类未注册。查找对象,其CLSID为"{>00000010-0000-0010-8000-00AA006D2EA4}”还说“运行时错误713':类未注册。查找对象,其CLSID为"{>00000010-0000-0010-8000-00AA006D2EA4}”请大家帮忙看看,急,急,急
      

  7.   

     我给你 说一下 base64 编码 原理:
    简单的说, 就是 要求把 每3个 8位(bit) 的字节(byte) 转化为4个6位的字节。 这4个6位字节的最高2位是零,没有任何意义。 转化后的编码只能 是以下 字符 组成  : A-Z,a-z,0-9,+,/  和 用来补足 位的 等号= 。 其它的 就是 我前面说的那些了。用 ehlo 命令 连接,用 auth 命令 进行认证。
    把 帐号 和 密码 用  base64 编码后发送。