Files
2026-09-22 20:38:51 -04:00

94 lines
3.2 KiB
Plaintext

{
------------------------------------------------------------------------
FORMULARIO : SENDEMAIL
OBJETIVO : Herramienta para enviar emails masivos
PROGRAMADOR : Ing. Juan Soto.
FECHA REALIZACION : Diciembre 7, 2021
-----------------------------------------------------------------------------
}
IMPORT JAVA javax.mail.Session
GLOBALS "noprgb000.4gl"
DEFINE genera CHAR(2),
xingresos,xdescuentos DEC(12,2),
num_Doc,email_err,cuenta_envio,num_nomi_ant INT,
estado_Envio VARCHAR(50),
vendedorEmail,emailCC VARCHAR(60),cuerpo_correo VARCHAR(2000),
subject VARCHAR(100), perfil,procedimiento VARCHAR(60),nombre_file,nombre_empleado VARCHAR(80)
DEFINE sesion Session,
password,s_protocol,respuesta,mensajes STRING
DEFINE meses ARRAY[12] OF CHAR(15)
DEFINE criterio10 CHAR(200)
MAIN
DEFER INTERRUPT
CALL STARTLOG("emailmarketing.txt")
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CONNECT to "smarmotech" USER usuarios USING clave
CALL enviaemailMain()
END MAIN
#"file:///f:/master/IMAGENES/LOGO.JPG"
#"file:///C://Users//jsoto//Documents//PROYECTOS//BDL320//MARMOTECH//PROYECTO//bin//IMAGENES//LOGO_DCM.PNG"
FUNCTION enviaemailMain()
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
r_filename STRING, -- filename of Report Design Document including .4rp extension
r_output STRING, -- output format option
preview INTEGER, -- TRUE/FALSE, to set preview option
retorne BOOLEAN,
xemail VARCHAR(100)
IF NOT validate_param_smpt_auth() THEN
CALL FGL_WINMESSAGE("INFO","NO EXISTE CONEXION","INFO")
END IF
CALL create_cxion_session() RETURNING sesion,password,s_protocol
LET cuenta_Envio = 0
# LET subject = datos_recibo.nom1_emp CLIPPED," ",datos_recibo.apell1_emp CLIPPED,"(",datos_recibo.num_emp USING "<<<<",")"
LET subject = "LANZAMIENTO TIENDA VIRTUAL "
LET cuerpo_correo = "<img src='https://ws.marmotech.com.do/imagenes/arte.png' width='500' height='600' loading='eager'>"
DECLARE busca_email CURSOR FOR
SELECT DISTINCT a.email,a.fecha_ultima_venta INTO xemail FROM emailmarketing a WHERE estado IS NULL AND (
a.email not like '%<%' AND a.email NOT LIKE '%;%')
ORDER BY a.fecha_ultima_venta DESC
FOREACH busca_email
DISPLAY "data email ",xemail," ",subject," ",cuerpo_correo," ",sesion," ",password," ",s_protocol
TRY
CALL enviaemail(xemail,subject,cuerpo_correo,sesion,password,s_protocol) RETURNING retorne
CATCH
LET estado_Envio = 'ERROR ENVIO'
UPDATE emailmarketing SET fecha_Envio = getdate(),estado = 'ERROR ENVIO' WHERE email = xemail
END TRY
UPDATE emailmarketing SET fecha_Envio = getdate(),estado = 'ENVIO SATISFACTORIO' WHERE email = xemail
LET estado_envio = 'ENVIO SATISFACTORIO'
LET cuenta_envio = cuenta_Envio + 1
IF cuenta_Envio > 450 THEN
EXIT FOREACH
END IF
END FOREACH
END FUNCTION