não funciona com Gmail
alguém poderia dar uma ajuda.
ANNOUNCE RDDSYS
#INCLUDE "MINIGUI.CH"
#INCLUDE "FILEIO.CH"
*------------------------------------
FUNC SENDMAIL
// RETORNA _ERRO
// SE VAZIO, TUDO OK
// SE NAO VAZIO DEU ERRO
LOCAL X,A
LOCAL OSOCKET, CSMTP, CFROM, CTO, CSUBJECT, CMSGBODY, AATTACHMENT
LOCAL CUSERID, CPASSWORD, LHTML, CUSER := "" ,_ERRO:=""
PARA; // EXEMPLOS
XCSMTP,; // "ITELEFONICA.COM.BR"
XCFROM, ; // "<RCSISTEMA1@ITELEFONICA.COM.BR>"
XCTO , ; // "<RCPOCA@YAHOO.COM.BR>"
XCSUBJECT, ; // "TESTE DE ENVIO DE EMAIL" // TITULO DO EMAL
XAATTACHMENT, ; // "C:\GELICHB\TESTE.XML"
XCMSGBODY , ; // "SEGUE ARQUIVO XML" // TEXTO DO CORPO DO EMAIL
XCUSERID , ; // "RCSISTEMA1@ITELEFONICA.COM.BR"
XCPASSWORD ,; // "HELENINHA"
XNPORT ,; // 25
XNPRIORITY // 3 PRIORIDADE NORMAL
IF LEN( ALLTRIM (XCTO) ) <=2
_ERRO+="- Email não preenchido"
RETU (_ERRO)
ENDIF
msg(1,"enviando email para " + fl+xcto)
*-----------------------------------------------------------------------------*
CSMTP := XCSMTP
CFROM := ALLTRIM(XCFROM)
CTO := ALLTRIM(XCTO)
CSUBJECT := XCSUBJECT
AATTACHMENT := XAATTACHMENT
CMSGBODY := XCMSGBODY
CUSERID := XCUSERID
CPASSWORD := XCPASSWORD
NPORT := XNPORT
NPRIORITY := XNPRIORITY
IF ! "@" $ CTO
_ERRO+="-Email inválido"+FL
RETU (_ERRO)
ENDIF
FOR A:= 2 TO LEN( CTO) -1 // NAO CONSIDERA <>
X:= ASC(SUBSTR(CTO,A,1))
IF X = 46;
.OR. X=64 ;
.OR. X>=48 .AND. X<=57 ;
.OR. X=95 ;
.OR. X>=97 .AND. X<=122
// VALIDO
ELSE
_ERRO+="-Email inválido"+FL + CTO+FL+ "caracter: "+ SUBSTR(CTO,A,1)
RETU (_ERRO)
ENDIF
NEXT
//
OSOCKET := TSMTP():NEW()
OSOCKET:CLEARDATA()
OSOCKET:SETPRIORITY( NPRIORITY )
OSOCKET:SETFROM( CUSERID,CFROM)
OSOCKET:ADDTO( CUSERID, CTO )
OSOCKET:SETSUBJECT( CSUBJECT )
OSOCKET:ADDATTACH( AATTACHMENT)
OSOCKET:SETDATA( CMSGBODY, LHTML )
OSOCKET:LOGIN( CUSERID, CPASSWORD )
IF ! OSOCKET:SEND(.T.)
//MSGSTOP( OSOCKET:GETLASTERROR(), "WHILE TRYING TO SEND DATA GOT AN ERROR MESSAGES FROM SERVER" )
_ERRO+="- Email não enviado"
ENDIF
//OSOCKET:CLOSE()
RETU (_ERRO)
*----------------------------
FUNC CONECTA
LOCAL _ERRO:=""
PARA CSMTP,NPORT
MSG(1,"Conectando servidor de email")
OSOCKET := TSMTP():NEW()
IF ! OSOCKET:CONNECT( CSMTP, NPORT )
_ERRO:= "- Falha na conexão"
ENDIF
MSG(0)
RETU _ERRO
*-------------------
FUNC DESCONECTA
OSOCKET := TSMTP():NEW()
OSOCKET:CLOSE()
RETU NIL
*------------FIM ----------------------
Poka