Send Email
Posted: Fri Jul 14, 2006 12:23 pm
As to send email in Fivewin Clipper?
www.FiveTechSoft.com
https://forums.fivetechsoft.com/
Code: Select all
Function EnvMail(oBrw)
Local oBar, cHost :=SPAC(40), cSender := spac(40), hFocus
local cSubject := Space( 100 ), cMsg := Space( 255 ), lReceipt := .T.
Local SEL_FIELD1:={ { || SOLICITA->NOMBRE},{ || SOLICITA->EMAIL }},;
SEL_ENC1:={ "Nombre","Email"} ,cPaso:=.T.,cMail:=SPAC(40)
Local cRegis:=AUTORIZA->(RECNO()),cMsg2,cNombre:=spac(40),oEnvia, lAuth:=.T.
cSender := param->sender
cHost :=PARAM->SMTP
SELEAGREGA("SOLICITA",239,129,.F.,SEL_FIELD1,SEL_ENC1,2,"Destino para: Af. "+ALLTRIM(LEFT(AUTORIZA->APEYNOMB,25))+;
" - "+IF(!EMPTY(AUTORIZA->PARTIDO),AUTORIZA->PARTIDO,BUS_DES("PADRON",3,AUTORIZA->NROBENEF,"PARTIDOUG")) )
IF SALIR # 2
cNOmbre:=SOLICITA->NOMBRE
if !empty(SOLICITA->EMAIL)
cMail:=SOLICITA->EMAIL
else
cPaso:=pidemail(@cMail)
endif
if AUTORIZA->ESTADO == 'PENDI'
MSGSTOP(oemtoansi('La pr ctica seleccionada a£n no ha sido auditada'),oemtoansi('No puede enviar pr cticas pendientes'))
cPaso:=.F.
endif
IF cPaso
cSubject:="Cisbo XI-Solic.Autoriz.Nº "+PADL(AUTORIZA->NUMERO,5,"0")+" ("+;
IF(AUTORIZA->ESTADO="AUTOR","AUTORIZADA",IF(AUTORIZA->ESTADO="RECHA","RECHAZADA",""))+")"
// my defaults add by Quim
cMsg := ;
"Por la presente comunicamos "+IF(AUTORIZA->ESTADO="AUTOR","LA AUTORIZACION",IF(AUTORIZA->ESTADO="RECHA",;
"EL RECHAZO",IF(AUTORIZA->ESTADO='R.TRA',"EL RECHAZO TRANSITORIO","")))+" de la siguiente práctica:"+CRLF+;
+SPAC(50)+;
+CRLF+;
"Número de Autorización: "+PADL(AUTORIZA->NUMERO,5,"0")+CRLF+;
"Afiliado: "+AUTORIZA->NROBENEF+" - "+AUTORIZA->APEYNOMB+CRLF+;
"Partido: "+IF(!EMPTY(AUTORIZA->PARTIDO),AUTORIZA->PARTIDO,BUS_DES("PADRON",3,AUTORIZA->NROBENEF,"PARTIDOUG"))+CRLF+;
"Práctica: "+BUS_DES("PRACTICA",1,AUTORIZA->PRACTICA,"NOMBRE")+CRLF+;
"Prestador: "+ALLTRIM(AUTORIZA->PRESTADOR)+" Dir.: "+ALLTRIM(BUS_DES("PROVEEDO",2,AUTORIZA->PRESTADOR,"DIRECCION"))+;
" Loc.: "+ALLTRIM(BUS_DES("PROVEEDO",2,AUTORIZA->PRESTADOR,"LOCALIDAD"))+;
" Tel.: "+ALLTRIM(BUS_DES("PROVEEDO",2,AUTORIZA->PRESTADOR,"TELEFONO"))+CRLF+;
"Observaciones: "+AUTORIZA->RESPUESTA+CRLF
IF AUTORIZA->ESTADO=='AUTOR'
cMsg2:= ;
SPAC(50)+CRLF+;
+SPAC(50)+CRLF+;
+SPAC(50)+CRLF+;
"La presente autorización posee 30 dias de vigencia y deberá ser adjuntada al resto de la documentación"+CRLF+;
"que habitualmente se acompaña en la facturación mensual. En el resumen mensual de facturación deberá incluirse "+;
"el codigo de autorización de cada práctica facturada."
ELSE
cMsg2:= ""
ENDIF
// end by Quim
Define Window oWnd ;
FROM 5,5 TO 29,86;
Title oemtoansi("Enviar EMail - Autorizaci¢n N§ ")+PADL(AUTORIZA->NUMERO,5,"0")+;
" - Para: "+cNombre ;
Color GetSysColor( COLOR_WINDOWTEXT ), GetSysColor( COLOR_BTNFACE )
Define ButtonBar oBar _3D Of oWnd
oBar:SetFont( TFont():New( "MS Sans Serif", 0, -11,, .T. ) ) // to avoid runtime error in TBtnBmp class!!!
Define Button oEnvia of oBar Prompt "S" Group ;
Action SendMail( oBrw,cRegis, oWnd, cMail, Alltrim( cHost ), AllTrim( cSender ), AllTrim( cSubject ),;
AllTrim( cMsg ), lReceipt,cMsg2 );
Static Function SendMail( oBrw,cRegis,oDlg,cDestino,cHost, cSender, cSubject, cMsg, lReceipt,cMsg2 )
Local oMail, oInit,SS
Local cUser:="cores8@speedy.com.ar",cPass:="690810"
cUser:=ALLTRIM(PARAM->SENDER)
SS=SECONDS()
// initialize sockets (or nothing will happen) - it's a quirk in GetHostByName(), not TSmtp
oInit := TSmtp():New( cHost )
// no let's go for our socket
*oMail := TSmtp():New( cHost, , lAuth, cUser, cPass ) // [jlalin], IBTC
oMail := TSmtp():New( cHost,,.T.,cUser,cPass )
oMail:nGMT := -8 // Pacific Standard Time (GMT -08:00) - Adjust this to your own Time Zone!
// uncomment next line if you experience problems while sending email / descomentar sig. l¡nea en caso de experimentar problemas al enviar correo
oMail:nDelay := 1
//oMail:lTxtAsAttach := .F. // uncomment to force txt, log and htm files as inline as opposed to attachement
oMail:oSocket:lDebug := .T. // uncomment to create log file
oMail:oSocket:cLogFile := "smtp.log"
OMAIL:bDone={|| TONE(1000,1),MSGINFO('Mail enviado con exito en '+NTRIM((SECONDS()-SS))+' Segundos','Aviso') ,;
REEMPLAZA(oBrw,cRegis),oWnd:End()}
oMail:bConnecting := {|| oWnd:SetMsg( "Conectando a " + cHost + " (" + oMail:cIPServer + ") and waiting for response..." ) }
oMail:bConnected := {|| oWnd:SetMsg( "Conectado y enviando email..." ) }
cSender:=ALLTRIM(cSender)
cDestino:=ALLTRIM(cDestino)
oMail:SendMail( ;
cSender, ; // from/de
{ cDestino }, ; // to/para (arreglo) - I use cSender here also because it's an "autotest". Actually you would type a different address here
cMsg,;
cSubject,; // Subject/Asunto
{}, ; // Array of filenames to attach/Arreglo de nombres de archivos a agregar
{}, ; // aCC
{}, ; // aBCC
lReceipt, ; // Return Receipt/acuse de recibo
cMsg2 ) // msg in HTML format/mensaje en HTML
oInit:end()
SS=SECONDS()
Return .T.