&& Connect to SMTP Server this.parent.ws.object.remotehost=ALLTRIM(this.parent.txtSrv.text) this.parent.ws.object.remoteport = 25 this.parent.ws.object.connect && Start Mail Activity at 1 thisform.mailact = 12. In the WS's DataArrival method, put this code
*** ActiveX Control Event *** LPARAMETERS bytestotal local lStrData as String LOCAL CRLF CRLF = CHR(13)+CHR(10) lStrData="" if this.object.state<>8 This.object.getdata(@lStrData,8) && This.parent.Edit1.value = This.parent.Edit1.value + lStrData + CRLF DO CASE CASE LEFT(lStrData,3) = "250" .OR.; LEFT(lStrData,3) = "220" .OR.; LEFT(lStrData,3) = "354" .OR.; LEFT(lStrData,3) = "221" DO CASE CASE thisform.MailAct = 1 this.sendData("HELO "+ALLTRIM(this.parent.txtSrv.text)+CRLF) thisform.MailAct = thisform.MailAct + 1 CASE thisform.MailAct = 2 this.sendData("MAIL FROM:<"+ALLTRIM(this.parent.txtFrom.text)+">"+CRLF) thisform.MailAct = thisform.MailAct + 1 CASE thisform.MailAct = 3 this.sendData("RCPT TO:<"+ALLTRIM(this.parent.txtTo.text)+">"+CRLF) thisform.MailAct = thisform.MailAct + 1 CASE thisform.MailAct = 4 this.sendData("DATA"+CRLF) thisform.MailAct = thisform.MailAct + 1 CASE thisform.MailAct = 5 this.sendData(ALLTRIM(this.parent.EdtData.text)+CRLF+"."+CRLF) thisform.MailAct = thisform.MailAct + 1 CASE thisform.MailAct = 6 this.sendData("QUIT"+CRLF) thisform.MailAct = thisform.MailAct + 1 CASE thisform.MailAct = 7 this.object.Disconnect ENDCASE OTHERWISE MESSAGEBOX("Error sending mail ("+LEFT(lStrData,3)+")"+CRLF+lStrData) ENDCASE endifSo it's not complete, just check if textboxes are completed, mail adress are valid (If not valid, SMTP server return an no-fatal error).