Page 1 of 1

MAPI - Mail, nRetcode siempre 0

PostPosted: Mon May 20, 2019 8:51 am
by Jorge_T
Hola a todos,

Puedo enviar emails sin problema con Windows 10 y Thunderbird (MAPI), el problema es que cuando la dirección del destinatario es errónea Thunderbird lo detecta pero el valor de retorno de que el mensaje ha sido enviado es siempre 0 por lo que al enviar varios mensajes desde una aplicación al finalizar no hay forma de controlar cuales no han sido enviados.

Estoy atascado con el tema y no logro ver la solución,

Saludos,

#include "FiveWin.ch"
#include "mail.ch"
function EMessage()
Local oMail
DEFINE MAIL oMail ;
SUBJECT "Asunto..." ;
TEXT "Cuerpo del mensaje....." ;
TO "demo@demostracion.com"
ACTIVATE MAIL oMail

MsgInfo( oMail:nRetCode )

return nil

Re: MAPI - Mail, nRetcode siempre 0

PostPosted: Mon May 20, 2019 1:24 pm
by karinha
Code: Select all  Expand view

#include "FiveWin.ch"
#include "mail.ch"

STATIC oWnd

function Main()

   LOCAL oBar
   LOCAL MailTo, cSndFile, cSndFile2, cText, cSubj, aFiles

   MailTo   := "kapiabafwh@gmail.com; demo@demostracion.com"

   // Archivos
   cSndFile  := "C:\FWH1701\SAMPLES\COMP.Log"
   cSndFile2 := "C:\FWH1701\SAMPLES\ERROR.Log"

   IF .NOT. FILE( cSndFile )

      cSndFile := ""

   ENDIF

   IF .NOT. FILE( cSndFile2 )

      cSndFile2 := ""

   ENDIF

   cText    := "Mister Jorge...                                   "

   cSubj    := "Errores en el programa..       "

   DEFINE WINDOW oWnd TITLE "Send Mail"

   DEFINE BUTTONBAR oBar _3D OF oWnd

   DEFINE BUTTON OF oBar ACTION( SendMail2( MailTo, cSndFile, cSndFile2, cText, cSubj ) )

   SET MESSAGE OF oWnd TO "Send Mail" NOINSET CLOCK DATE KEYBOARD

   ACTIVATE WINDOW oWnd

return nil
// Envia Error
FUNCTION SendMail2( MailTo, cSndFile, cSndFile2, cText, cSubj )

   LOCAL oMail

   DEFINE MAIL oMail                                                         ;
      SUBJECT cSubj                                                          ;
      TEXT cText                                                             ;
      FILES cSndFile, cSndFile, cSndFile2, cSndFile2                         ;
      FROM USER                                                              ;
      TO MailTo

   ACTIVATE MAIL oMail

   IF ( oMail:nRetCode ) = 0

      MsgInfo( "Mensagem Enviada com Sucesso", "Aviso" )

   ELSE

      MsgInfo( OemToAnsi( "NÆo Foi Possivel Enviar a Mensagem de Erro" ),    ;
               OemToAnsi( "NÆo Foi Possivel Enviar a Mensagem de Erro" ) )

   ENDIF

RETURN( .T. )
 


Saludos.

Re: MAPI - Mail, nRetcode siempre 0

PostPosted: Mon May 20, 2019 2:49 pm
by Jorge_T
Muchas gracias Karinha,

Pero el problema es el mismo, después de compilar tu ejemplo, si envio a un email erróneo, por ejemplo "demo@demostracionx.com", nRetcode es 0 por lo que el programa informa que el mensaje a sido enviado...

Sin embargo, si que nos informa correctamente con error si no adjuntamos un archivo valido. Si no es mucho pedir, intenta hacer la prueba,

Saludos,
Image
Image

Re: MAPI - Mail, nRetcode siempre 0

PostPosted: Mon May 20, 2019 3:14 pm
by karinha
El correcto és que tu haga una FUNCTION para criticar los emails erroneos. El windows live és que debe retornar un erro de envio.

No hay error en este email: demo@demostracion.com solo no ejiste.

Saludos.

Re: MAPI - Mail, nRetcode siempre 0

PostPosted: Fri May 24, 2019 2:53 pm
by Jorge_T
karinha wrote:El correcto és que tu haga una FUNCTION para criticar los emails erroneos. El windows live és que debe retornar un erro de envio.

No hay error en este email: demo@demostracion.com solo no ejiste.

Saludos.


Muchas gracias Karinha,

Tienes toda la razón, estaba "ofuscado", no hay un error en el formato del email.

Lo correcto sería chequear si la dirección de email existe....

Es posible hacerlo con fivewin???

Saludos,