Problemas para enviar correo vía outlook
Tengo un problema el programa funciona perfectamente para enviar pero cuando le digo que no lo envíe me da un error.
Sabes que por ti mismo conseguí esta instrucción y que esta muestra una pantalla antes de enviarla que te dice desea enviar si o no cuando le digo que si funciona perfecto. Pero cuando le digo que no porque el usuario no posee correo o algo me bota un error. Que dice:
Codigo de excepcion ole Idispatch 0 de MAPIMessages: Not supported.
Yo le doy suspender para ver donde produce el error en el código
Y se para exactamente en esta linea= .send(m.lmostrar)
Te copio a continuación todo el código completo que utilizo:
public csl
PUBLIC m.lMostrar
LOCAL m.oForm, m.xTemporal,m.nContador, m.nArchivos, m.cActual
m.cActual = SYS(5) + CURDIR()
IF TYPE( 'm.cPara' ) <> 'C'
m.cPara=ALLTRIM(ThisForm.text10.Value)
ENDIF
IF TYPE( 'm.cAsunto' ) <> 'C'
m.cAsunto = "Notificacion de Solicitud de Servicio, Nro: "+LTRIM(STR(ThisForm.nreclamo.Value))+"."
ENDIF
IF TYPE( 'm.cMensaje' ) <> 'C'
csl=CHR(13)+CHR(10)
m.cMensaje ="Estimado Sr(a):"+ALLTRIM(ThisForm.nombr.Value)+"."+csl+csl+;
"Gracias por Comunicarse con Nosotros."+csl+csl+;
"Le Informamos que su solicitud con descripcion:("+alltrim(thisform.combo6.value)+"),Ha sido Registrada con el Nro: "+LTRIM(STR(ThisForm.nreclamo.Value))+"."+csl+csl+csl+;
"Realice su Solicitud, Consulte y haga Seguimiento, a traves de Nuestro Correo de Servicio(Apoyo al Usuario Region 4), o de la Ext.3333."+csl+csl+csl+;
"Atentamente;"+csl+;
"Apoyo al Usuario (3333)."+csl+;
"Cadafe Region 4"+csl+;
"Gerencia de ATIT"+csl+csl+;
"TRABAJAMOS PARA OFRECERTE UN MEJOR SERVICIO."
ENDIF
IF TYPE( 'm.cArchivo' ) <> 'C'
m.cArchivo = ""
ENDIF
m.oForm = CREATEOBJECT( "form" )
WITH m.oForm
.ADDOBJECT( "Session1", "olecontrol", "MSMAPI.mapiSession" )
IF TYPE( '.Session1' ) <> 'O'
MESSAGEBOX( 'No se ha podido instanciar la aplicación de correo.', 64, 'Atención')
RELEASE m.oForm
RETURN .F.
Endif
. ADDOBJECT("Message1", "olecontrol", "MSMAPI.mapiMessages" )
IF TYPE( '.Message1' ) <> 'O'
MESSAGEBOX( 'No se ha podido instanciar la aplicación de correo.', 64, 'Atención')
RELEASE m.oForm
RETURN .F.
ENDIF
WITH .Session1
.LogonUI = .T.
*- Si no se pone la propiedad a .F. Y en OUTLOOK está puesto trabajar sin conexión
*- se cuelga
.DownloadMail = .f.
.SignOn
ENDWITH
WITH .Message1
.sessionid = .PARENT.Session1.sessionid
.compose
.RecipDisplayName = m.cPara
.msgsubject = m.cAsunto
.msgnotetext = m.cMensaje
. SEND(m. LMostrar)
Endwith
. Session1. SignOff
Endwith
RELEASE m.oForm
SET DEFAULT TO (m.cActual)
return
Sabes que por ti mismo conseguí esta instrucción y que esta muestra una pantalla antes de enviarla que te dice desea enviar si o no cuando le digo que si funciona perfecto. Pero cuando le digo que no porque el usuario no posee correo o algo me bota un error. Que dice:
Codigo de excepcion ole Idispatch 0 de MAPIMessages: Not supported.
Yo le doy suspender para ver donde produce el error en el código
Y se para exactamente en esta linea= .send(m.lmostrar)
Te copio a continuación todo el código completo que utilizo:
public csl
PUBLIC m.lMostrar
LOCAL m.oForm, m.xTemporal,m.nContador, m.nArchivos, m.cActual
m.cActual = SYS(5) + CURDIR()
IF TYPE( 'm.cPara' ) <> 'C'
m.cPara=ALLTRIM(ThisForm.text10.Value)
ENDIF
IF TYPE( 'm.cAsunto' ) <> 'C'
m.cAsunto = "Notificacion de Solicitud de Servicio, Nro: "+LTRIM(STR(ThisForm.nreclamo.Value))+"."
ENDIF
IF TYPE( 'm.cMensaje' ) <> 'C'
csl=CHR(13)+CHR(10)
m.cMensaje ="Estimado Sr(a):"+ALLTRIM(ThisForm.nombr.Value)+"."+csl+csl+;
"Gracias por Comunicarse con Nosotros."+csl+csl+;
"Le Informamos que su solicitud con descripcion:("+alltrim(thisform.combo6.value)+"),Ha sido Registrada con el Nro: "+LTRIM(STR(ThisForm.nreclamo.Value))+"."+csl+csl+csl+;
"Realice su Solicitud, Consulte y haga Seguimiento, a traves de Nuestro Correo de Servicio(Apoyo al Usuario Region 4), o de la Ext.3333."+csl+csl+csl+;
"Atentamente;"+csl+;
"Apoyo al Usuario (3333)."+csl+;
"Cadafe Region 4"+csl+;
"Gerencia de ATIT"+csl+csl+;
"TRABAJAMOS PARA OFRECERTE UN MEJOR SERVICIO."
ENDIF
IF TYPE( 'm.cArchivo' ) <> 'C'
m.cArchivo = ""
ENDIF
m.oForm = CREATEOBJECT( "form" )
WITH m.oForm
.ADDOBJECT( "Session1", "olecontrol", "MSMAPI.mapiSession" )
IF TYPE( '.Session1' ) <> 'O'
MESSAGEBOX( 'No se ha podido instanciar la aplicación de correo.', 64, 'Atención')
RELEASE m.oForm
RETURN .F.
Endif
. ADDOBJECT("Message1", "olecontrol", "MSMAPI.mapiMessages" )
IF TYPE( '.Message1' ) <> 'O'
MESSAGEBOX( 'No se ha podido instanciar la aplicación de correo.', 64, 'Atención')
RELEASE m.oForm
RETURN .F.
ENDIF
WITH .Session1
.LogonUI = .T.
*- Si no se pone la propiedad a .F. Y en OUTLOOK está puesto trabajar sin conexión
*- se cuelga
.DownloadMail = .f.
.SignOn
ENDWITH
WITH .Message1
.sessionid = .PARENT.Session1.sessionid
.compose
.RecipDisplayName = m.cPara
.msgsubject = m.cAsunto
.msgnotetext = m.cMensaje
. SEND(m. LMostrar)
Endwith
. Session1. SignOff
Endwith
RELEASE m.oForm
SET DEFAULT TO (m.cActual)
return
1 Respuesta
Respuesta de ikz0f7
1