This is a copy of the email program using the winsock control
from the Easier to Read code of steve65

Can any please convert this in winsock API.
The part i'm having trouble is the sub "WaitForResponse(ResponseCode As String)"



Code:
Option Explicit
Dim Response As String

Private Sub cmdOriginal_Click(Index As Integer)

    Call SendMail

End Sub

Sub SendMail()

Dim AppName As String
Dim Data1 As String
Dim Data2 As String
Dim Data3 As String
Dim Data4 As String
Dim Data5 As String
Dim Data6 As String
Dim Data7 As String
Dim Data8 As String

Dim CurrentDate As String
Dim TimeDifference As String


    'Set the Winsock control's local port to 0, because otherwise
    'you may not be able to send more than one e-mail message
    'every time the program runs
    
    Winsock1.LocalPort = 0
    
    'Start composing the required data strings, but first check
    'if the Winsock socket is closed
    If Winsock1.State = sckClosed Then
        
        'Compose the current date and time string
        TimeDifference = " -200" 'Your zone time-difference
        
        CurrentDate = Format(Date, "Ddd") & ", " & Format(Date, "dd Mmm YYYY") & " " & _
                      Format(Time, "hh:mm:ss") & TimeDifference
        
        'Set the program name used to send this e-mail message (you can
        'put your program name here)
        AppName = "X-Mailer: " & "My Mail Program V1.0" & vbCrLf
        
        'Set the e-mail address of the sender
        Data1 = "mail from:" & Chr(32) & "[email protected]" & vbCrLf
        
        'Set the e-mail address of the recipient
        Data2 = "rcpt to:" & Chr(32) & "[email protected]" & vbCrLf
        
        'Set the date string
        Data3 = "Date: " & Chr(32) & CurrentDate & vbCrLf
        
        'Set the name of the sender
        Data4 = "From: " & Chr(32) & "Senders Name" & vbCrLf
        
        'Set the name of the recipient
        Data5 = "To: " & Chr(32) & "Recipient Name" & vbCrLf
        
        'Set the subject of the E-Mail message
        Data6 = "Subject: " & Chr(32) & "Test Subject" & vbCrLf
        
        'Set the E-mail message body string
        Data7 = "Body of message" & vbCrLf
        
        'Combine the whole string for proper SMTP syntax
        Data8 = Data4 & Data3 & AppName & Data5 & Data6
        
        'Set the Winsock protocol
        Winsock1.Protocol = sckTCPProtocol
        
        'Set the remote host name (of SMTP server)
        Winsock1.RemoteHost = "mail.smtp.server.com"
        
        'Set the SMTP Port to the default port 25
        Winsock1.RemotePort = 25
        
        'Start the connection
        Winsock1.Connect

        'Wait for response from the remote host
        WaitForResponse ("220")

        'Send your computer name or company name
        Winsock1.SendData ("HELO Your Computer Name" & vbCrLf)
        
        'Wait for response from the remote host
        WaitForResponse ("250")
        
        Winsock1.SendData (Data1)
        WaitForResponse ("250")
        
        Winsock1.SendData (Data2)
        WaitForResponse ("250")
        
        'Tell the SMTP server that you want to send data now
        Winsock1.SendData ("data" & vbCrLf)
        
        'Wait for response from the remote host
        WaitForResponse ("354")
        
        'Send the data
        Winsock1.SendData (Data8 & vbCrLf)
        Winsock1.SendData (Data7 & vbCrLf)
        Winsock1.SendData ("." & vbCrLf)
        
        'Wait for response from the remote host
        WaitForResponse ("250")
        
        'Send quitting acknowledgment
        Winsock1.SendData ("quit" & vbCrLf)
        
        'Wait for response from the remote host
        WaitForResponse ("221")
        
        'Close the connection
        Winsock1.Close
        
    Else
    
        'Report Error
        MsgBox (Str(Winsock1.State))
    
    End If

End Sub

Sub WaitForResponse(ResponseCode As String)

Dim Start As Single
Dim TimeToWait As Single

    Start = Timer
    
    'Start a loop checking for response from SMTP host
    While Len(Response) = 0
    
        TimeToWait = Start - Timer
        DoEvents
        'If TimeToWait expires, report timeout error
        
        If TimeToWait > 50 Then
            MsgBox "SMTP timeout error, no response received", 64, App.Title
            Exit Sub
        End If
    
    Wend
    
    While Left(Response, 3) <> ResponseCode
        DoEvents
        
        If TimeToWait > 50 Then
            'Report error if incorrect code is received
            MsgBox "SMTP error, improper response code received!" & Chr(10) & _
                   "Correct code is: " & ResponseCode & ", Code received: " & _
                   Response, 64, App.Title
            Exit Sub
        End If
    
    Wend
    
    'Set response to nothing
    Response = ""

End Sub


Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

    'Check for response from the remote host
    Winsock1.GetData Response

End Sub