adjuntos correo .xls / .xlsx

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
edufloriv
Posts: 108
Joined: Thu Nov 08, 2012 3:42 am
Location: PERU
Been thanked: 3 times

adjuntos correo .xls / .xlsx

Post by edufloriv » Fri Sep 08, 2017 3:09 pm

Saludos amigos,

No sé si a alguien más le ha pasado que cuando envia como adjunto archivos .xlsx por correo usando nuestra ya conocida función de harbour estos NO se pueden abrir en la bandeja del destinatario, en cambio si se envian con el formato .xls se abren perfectamente sin ningún problema.

Aquí nuestro ya conocido código para envio de correo:

Code: Select all

PROC EnviarCorreoCompras

LOCAL cFecHoy       := DTOC(GetFecServ())
LOCAL cSubject      := 'CONSOLIDADO - REPONER + QUEBRADOS '+cFecHoy
LOCAL cBody         := ''
LOCAL cPopServer    := "mail.miempresa.com.pe"
LOCAL cSMTPServer   := "mail.miempresa.com.pe"
LOCAL cSMTPPassWord := "mipassword"
LOCAL cFrom         := "eflores@miempresa.com.pe"
LOCAL cUser         := "eflores"
LOCAL aTo           := {'compras1@miempresa.com.pe','compras2@miempresa.com.pe'}

   cBody := 'Remito la lista de reposición diaria y lista de quebrados al '+cFecHoy+;
            REPL(chr(13)+chr(10),10)+;
            'SisComFar'+chr(13)+chr(10)+;
            'Sistema automático de informes'

   cAdj1 := RUTA_TEMPS+'Reposicion_Diaria'+SYS_XLS // PUBLIC SYS_XLS := IF( SYS_XLSAVE = 56 , '.XLS' , 'XLSX' ) 
   cAdj2 := RUTA_TEMPS+'Quebrados'+SYS_XLS           // 
   aFiles := { cAdj1 , cAdj2 }

   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 )

   IF lRespuesta = .F.
      RobotTrack('ERROR : No se pudo enviar el correo a compras.')
   ENDIF

RETURN
Y este es el error que lanza el Outlook cuando intenta abrir el archvio .xlsx
error-xlsx.jpg
error-xlsx.jpg (37.57 KiB) Viewed 142 times
Esta es la porción de código que graba el excel, SYS_XLSAVE es una public que puede valer 0 ó 56 actualmente lo estoy usando con 56 para que grabe con formato .xls:

Code: Select all

   IF SYS_XLSAVE = 56
      oExcel:ActiveWorkbook:SaveAs( cExcelNam2 , 56 )  // Para grabar en formato .XLS
   ELSE
      oExcel:ActiveWorkbook:SaveAs( cExcelNam2 )   // Graba en formato .XLSX en Office 2013/2016
   ENDIF
   oWorkBook:Close()
   oExcel:Quit()

   oHoja     := NIL
   oWorkBook := NIL
   oExcel    := NIL
   RELEASE oHoja
   RELEASE oWorkBook
   RELEASE oExcel
El módulo esta corriendo actualmente en una pc con Windows 10 y Office 2016, pero como repito, si cambio PUBLIC SYS_XLSAVE = 0, en la bandeja de entrada ya no puede abrirse la hoja de excel adjunta.

Espero sus comentarios al respecto, saludos a todos y que tengan un excelente día.



Att.

Eduardo Flores Rivas


LIMA - PERU

edk
Posts: 140
Joined: Thu Oct 16, 2014 11:35 am
Location: Poland
Has thanked: 39 times
Been thanked: 77 times

Post by edk » Fri Sep 08, 2017 5:42 pm

Try to send email via cdo.message:
http://www.hmgforum.com/viewtopic.php?f ... 497#p51497

I use this method to send emails with attached any type of files without problems.

User avatar
danielmaximiliano
Posts: 2030
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Has thanked: 77 times
Been thanked: 11 times
Contact:

Post by danielmaximiliano » Sat Sep 09, 2017 11:21 am

El código de viejo sendmail tiene en algún lugar los formatos admisibles para archivos adjuntos...
Es la forma de interpretar y no corromper los mismos al descargarlos del cuerpo del email
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`.HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. : +54901169026142
Telegram Name : DaNiElMaXiMiLiAnO

Post Reply