Hola a todos , tengo un problema con este codigo que e escrito para enviar email , como veis es un codigo muy sencillo que funciona bien asta la segunda espera en concreto el "250" del servidor , ademas el bucle de la funcion espera deja mucho que desear pero digamos que estoy atascado , tambien decir que e probado a conectar via telenet con el servidor que use para probarlo y funciona perfectamente con los parametros que le doy de direcciones etc ...
eso solo que no llego a recivir la respuesta , no se por que causa es esto ya que en la respuesta del connect capto perfectamente el "220" usando la misma funcion de espera, aunque intuyo que tendra algo que ver con la funcion espera .... e sniffeado la conexion con ethereal los dos ultimos registros son el "helo servidor.com" que envia el programa y el ultimo un TCP ACK del servidor , aahi se acaba , bueno gracias a todos por gastar su timepo leyendo .


Dim cotenidolog As String
Dim respuesta As String

Private Sub Form_Load()
Winsock1.Connect
espera ("220")
Winsock1.SendData ("helo servidor.com" + CvbCrLf)
espera ("250")
Winsock1.SendData ("mail from:" + "<[email protected]>" + vbCrLf)
espera ("250")
Winsock1.SendData ("rcpt to:" + "" + Chr(13))
espera ("250")
Winsock1.SendData ("data" + Chr(13))
espera ("354")
Winsock1.SendData ("." + Chr(13))
espera ("250")
Winsock1.SendData ("quit" + Chr(13))


End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close
Winsock1.Accept requestID
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Winsock1.GetData respuesta
MsgBox (respuesta + "------getdata")
'Text1.Text = Text1.Text + respuesta
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
MsgBox ("winsock error")


End Sub

'Public Function espera(codigorespuesta As String)
'Do Until Left(respuesta, 3) = codigorespuesta
'DoEvents
'Loop
'MsgBox (respuesta)
'respuesta = ""
'codigorespuesta = ""
'End Function
Public Function espera(codigorespuesta As String)
Do Until Left(respuesta, 3) = codigorespuesta
DoEvents
Loop
If codigorespuesta = Left(respuesta, 3) Then
MsgBox (respuesta)
Else: MsgBox (codigorespuesta)
End If
respuesta = ""
End Function