GeneXus - Problemas con envio de mail

 
Vista:

Problemas con envio de mail

Publicado por Victor (2 intervenciones) el 20/03/2008 16:04:32
Hola a todos,
Necesito mandar un mail con adjunto por genexus

Probé el codigo de envio de correo por SMTPsession y anduvo perfecto, el problema es que quiero obtener los datos del servidor desde un archivo de configuracion guardado en la BD.

Entonces cuando instancio a Host con el valor obtenido desde una subrutina al ejecutar la aplicacion me devuelve el siguiente error y se cierra el programa (el error se produce solo con el host):

java.lang.NullPointerException
at com/genexus/internet/SMTPSession.doCommand
at com/genexus/internet/SMTPSession.commandOk
at com/genexus/internet/SMTPSession.send
at com/genexus/internet/GXSMTPSession.send

Lo que carece de logica porque con los mismos datos escritos a mano anda a la perfeccion
De antemano muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con envio de mail

Publicado por Adan (11 intervenciones) el 27/07/2009 19:20:27
Buen dia:

Se te corrigio el problema con el correo??

Visualisaste que existia problemas con el acento y la "ñ", como lo solucionaste.

Gracias y saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con envio de mail

Publicado por Victor (2 intervenciones) el 28/07/2009 02:06:43
Hola,
Recuerdo que tuve ese problema, no se si era un problema de Genexus o el Servidor de Correos pero te paso el código de como lo uso yo.
Lo único que se es que algunos servidores "host" en la variable SMTPSession, no necesitan autentificacion.
Entonces si el servidor necesita autentificación, proveo el mail y password del usuario y seteo la opcion "Authentication=1", si no lo necesita la contraseña la dejo en blanco y seteo la opcion "Authentication=0".
Otra cosa que se es que genexus no soporta SSL por lo que host como Gmail no los he logrado usar.
Espero ayudar. Saludos.

Estas son las variables que tengo definidas :

&Mail_SMTP = SMTPSession
&Mail_Destino = MailRecipient
&Mail_Mensaje = MailMessage
Col_Mails = SDT (coleccion donde grabo todos los mails que voy a usar en el
campo "Para")

-Tengo una subrutina donde recupero los datos grabados en la base de datos
"'Rescata Configuracion'", adonde cargo la variable "&Mail_SMTP"

-Este proceso es el que envia el mail:

Sub 'Enviar Mail'
//Si tengo destinatarios a cargar procedo a enviar el mail
if &Col_Mails.Count>0

//obtengo los valores de la configuracion general para poder
iniciar el servidor
DO 'Rescata Configuracion'

&Mail_SMTP.ErrDisplay=1

//por si ya ha enviado mails elimino la coleccion de destinatarios
&Mail_Mensaje.To.Clear()
for &Col_MailsItem in &Col_Mails
&Mail_Destino.Address=&Col_MailsItem.CT02emaCon
&Mail_Destino.Name=&Col_MailsItem.CT02nomCon
&Mail_Mensaje.To.Add(&Mail_Destino)
endfor

//por si ya ha enviado mails elimino la coleccion de adjuntos
&mail_Mensaje.Attachments.Clear()
//Adjunto al mail el resumen creado
&mail_Mensaje.Attachments.add(concat(&nombre,'.pdf'))

//Texto a ser enviado en el mensaje
&Mail_mensaje.HTMLText='Adjuntamos el Resumen'

//algunos servidores no necesitan autentificacion para andar
correctamente, en ese caso hay que dejar el password vacio
if null(&Mail_SMTP.Password) //no se requiere autentificacion
&Mail_SMTP.Authentication=0
else
&Mail_SMTP.Authentication=1
endif

//Inicio el servidor y envio el mail
&Mail_SMTP.Login()

if &Mail_SMTP.ErrCode<>0
//si hay errores al conectarme
msg ('*1* - ' + trim(str(&Mail_SMTP.ErrCode)) + ' - ' +
&Mail_SMTP.ErrDescription)
else
//envio mail
&Mail_SMTP.Send(&Mail_Mensaje)
if &Mail_SMTP.ErrCode<>0
//si hay errores de envio
msg ('*2* - ' + trim(str(&Mail_SMTP.ErrCode)) + ' - '
+ &Mail_SMTP.ErrDescription)
else
msg('Mail enviado con exito')
//cierro sesion en el servidor
&Mail_SMTP.Logout()
if &Mail_SMTP.ErrCode<>0
//si hay errores al desconectarme
msg ('*3* - ' + trim(str(&Mail_SMTP.ErrCode)) + '
- ' + &Mail_SMTP.ErrDescription)
endif
endif
endif
else
Msg('Error, No se ha especificado ningún mail de destino')
endif
endsub // 'Enviar Mail'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar