Note un problema con la función hb_sendmail() que creo ya todos conocemos:
Code: Select all
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC CierreCorreoEnviar
LOCAL cPopServer := "mail.miserver.com.pe"
LOCAL cSMTPServer := "mail.miserver.com.pe"
LOCAL cUser := "miusuario"
LOCAL cSMTPPassWord := "miclave"
LOCAL cFrom := "micorreo@miserver.com.pe"
LOCAL aTo := {'edufloriv@gmail.com'}
LOCAL aFiles := {}
LOCAL cSubject := 'CIERRE DE VENTAS '+UPPER(cMesNom)+' '+cAnual
LOCAL cBody := ''
LOCAL cFecHoy := DTOC(GetFecServ())
cAnualMes := Win_VentasCorreo.TxtAnualMes.Value
cAnual := LEFT( cAnualMes , 4 )
cMesChr := RIGHT( cAnualMes , 2 )
cMesNom := SYS_MESES[ VAL(cMesChr) ]
cExcelFold := 'D:\MisDocumentos\CIERRES\'+cAnual
cRepoCier := 'Cierre_Ventas_Mensual_'+cAnualMes+'.xls' // Este excel pesa 131 KB
cRepoAnal := 'Analisis_Por_Cliente_'+cAnualMes+'.xls' // Este excel pesa 366 KB
cRepoAnos := 'Ventas Comparativo Anual.xls' // Este excel pesa 91 KB
cExcelCier := cExcelFold+'\'+cRepoCier
cExcelAnal := cExcelFold+'\'+cRepoAnal
cExcelAnos := cExcelFold+'\'+cRepoAnos
IF .NOT. FILE( cExcelCier )
MsgInfo('Falta el reporte de cierre de mes.')
RETURN
ENDIF
IF .NOT. FILE( cExcelAnal )
MsgInfo('Falta el reporte de análisis por cliente.')
RETURN
ENDIF
IF .NOT. FILE( cExcelAnos )
MsgInfo('Falta el reporte comparativo por años.')
RETURN
ENDIF
Win_VentasCorreo.TxtProgreso.Value := 'Enviando reportes por correo...'
cBody := 'Se remite el cierre de ventas del mes de '+cMesNom+' del '+cAnual+;
REPL(chr(13)+chr(10),10)+;
'SisComFar'+chr(13)+chr(10)+;
'Sistema automático de informes'
aFiles := { cExcelAnal } //cExcelCier , cExcelAnos , // <--- AQUI JUEGO CON LOS ADJUNTOS :
// CUANDO PONGO LOS 3 EXCEL NO LLEGA NADA AL CORREO DESTINO
// CUANDO PONGO LOS 2 MAS CHICOS SI LLEGA NORMAL
// CUANDO PONGO SOLO EL MAS GRANDE SI LLEGA NORMAL
lRespuesta := hb_SendMail( ;
cSMTPServer,; // Servidor
25 ,; // Puerto
cFrom,; // From
aTo,; // To
NIL ,; /* CC */
NIL ,; /* BCC */
cBody ,; // Body
cSubject ,; // Subject
aFiles ,; // aFiles attached
cFrom ,; // User (obligatorio)
cSMTPPassword,; // Pass (obligatorio)
cPopServer,; // POP Server (obligatorio)
3 ,; /* nPriority */
.F. ,; /* lRead */
.F. ,; /* lTrace */
.T. ,; /* lPopAuth */
.F. ,; /* lNoAuth */
NIL ,; /* nTimeOut */
NIL ,; /* cReplyTo */
.F. ,; /* lTLS */
cSMTPPassWord )
MsgInfo('Reportes enviados.')
RETURN
cRepoCier := 'Cierre_Ventas_Mensual_'+cAnualMes+'.xls' // Este excel pesa 131 KB
cRepoAnal := 'Analisis_Por_Cliente_'+cAnualMes+'.xls' // Este excel pesa 366 KB
cRepoAnos := 'Ventas Comparativo Anual.xls' // Este excel pesa 91 KB
Hago 3 pruebas de envio y tengo este resultado en mi bandeja de destino (en ningún caso sale error alguno):
1. CUANDO PONGO LOS 3 EXCEL NO LLEGA NADA AL CORREO DESTINO
2. CUANDO PONGO LOS 2 MAS CHICOS (131 KB y 91 KB ) SI LLEGA NORMAL
3. CUANDO PONGO SOLO EL MAS GRANDE (366 KB) SI LLEGA NORMAL
Si envio los 3 excel desde mi cliente de correo MOZILLA THUNDERBIRD, llegan normal. Sospecho que se puede tratar del tiempo de espera que se demora la función hb_sendmail() en cargar los archivos excel, tal vez tiene un límite que al ser tocado aborta el envio, pero no sale error alguno, en las tres pruebas siempre termina lanzando el mensaje "Reportes enviados." - De ser así hay forma de cambiar este parametro de tiempo de espera ?
Agradeceré su ayuda y valioso tiempo amigos. Desde ya un saludo cordial a todos.
Att.
HMG 3.0.46