Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim strServerResponse   As String
    Dim strResponseCode     As String
    Dim strDataToSend       As String    '
    Const RandString As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_"
    Dim Globalstr As String
    For jd = 1 To 24
        uniquey = Int(Rnd * Len(RandString)) + 1
        Globalstr = Globalstr + Mid(RandString, uniquey, 1)
    Next jd
    strime1 = "Subject:" + Chr(32) + subject + vbCrLf ' Subject of E-Mail
    strime = txtMessage + vbCrLf ' E-mail message body
    strime2 = "X-Mailer:VVV:モハシキ「ヒヘネ晴V1.0" + vbCrLf ' What program sent the e-mail, customize this
    'MULTI-PART Edit
    strime = "------=_NextPart_" + Globalstr + vbCrLf + "Content-type: text/plain; charset=gb2312" + vbCrLf + vbCrLf + strime
    strime = strime + "------=_NextPart_" + Globalstr + vbCrLf + "Content-type: text/HTML" + vbCrLf + vbCrLf + txtmessage1 + vbCrLf + vbCrLf
    strime = strime + "------=_NextPart_" + Globalstr + "--" + vbCrLf
    strime1 = strime1 + "MIME-Version: 1.0" + vbCrLf + "Content-Type: multipart/alternative; " + vbCrLf + Chr(9) + "boundary=""----=_NextPart_" + Globalstr + """" + vbCrLf + vbCrLf + "This mail is In MIME format. Your mail interface does Not appear To support this format." + vbCrLf + vbCrLf
    strimeall = strime2 + strime1
    Winsock1.GetData 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 = Trim$(txtfrom)
                'strDataToSend = Left$(strDataToSend, _
                                InStr(1, strDataToSend, "@") - 1)
                 Winsock1.SendData "HELO " & strDataToSend & vbCrLf
                 StatusTxt = "logging in"
            Case MAIL_HELO
                 m_State = MAIL_USER
                 Winsock1.SendData "AUTH LOGIN" & vbCrLf
                 StatusTxt = "check user"
            Case MAIL_USER
                 m_State = MAIL_PASS
                 Winsock1.SendData (Base64_Encode(Trim(user.Text))) & vbCrLf
                 StatusTxt = "check password"
            Case MAIL_PASS
                 m_State = mail_login
                 Winsock1.SendData (Base64_Encode(txtpwa)) & vbCrLf
                 StatusTxt = "from "
            Case mail_login
                 m_State = MAIL_from
                 Winsock1.SendData "MAIL FROM:" & Trim$(txtfrom) & vbCrLf
                 StatusTxt = "to"
            Case MAIL_from
                 m_State = MAIL_RCPTTO
                 Winsock1.SendData "RCPT TO:" & Trim$(getaddress) & vbCrLf
                 StatusTxt = "sending..."
            Case MAIL_RCPTTO
                 m_State = MAIL_DATA
                 Winsock1.SendData "DATA" & vbCrLf
                 StatusTxt = "get data"
            Case MAIL_DATA
                m_State = MAIL_DOT
                Winsock1.SendData "From:" & user.Text & " <" & txtfrom & ">" & vbCrLf
                Winsock1.SendData "To:" & toname & " <" & getaddress & ">" & vbCrLf
                Winsock1.SendData strimeall & vbCrLf
                Winsock1.SendData strime & vbCrLf
                Winsock1.SendData "." & vbCrLf
                StatusTxt = "over"
            Case MAIL_DOT
                m_State = MAIL_QUIT
                Winsock1.SendData "QUIT" & vbCrLf
                StatusTxt = "succeed!!!"
              Case MAIL_QUIT
                 Winsock1.Close
                 StatusTxt = "&#65396;&#63729;&#65411;&#12539;&#65390;&#65430;&#65424;..."
         End Select
    Else
         Winsock1.Close
    End If
Debug.Print strServerResponse
End Sub