GeneXus - Problema al adjuntar archivo a correo saliente

 
Vista:

Problema al adjuntar archivo a correo saliente

Publicado por Luciano Lator (3 intervenciones) el 29/10/2009 19:33:00
El problema que tengo es que no se adjunta el archivo. Es más, no envia ni siquiera el mail cuando adjunto algo. Lo raro es que es que dice que lo envió pero no llega nada a ningún destinatario.
Puede ser por la ruta del archivo pero he probado con D:\General.pdf, poniendo el archivo en la carpeta bin de la KB y llamándolo por General.pdf, tambien con ruta absoluta como \\servidor\path\nombrearchivo.extension, etc.
Si alguno me puede dar una ayuda o ejemplo de como poner un path para adjuntar archivos, le agradeceria mucho.
También agradecería si tienen un ejemplo con otro servidor web gratuito pues en mi caso use gmail y lo importate es enviar archivos adjuntos.
Otra ocurrencia puede ser algún problema con el servidor de gmail. En caso que alguno sepa de esta razón, me podria dar indicaciones de otro servidor y de su configuración (smtp, port, secure, authentication) o sólo el nombre del mismo.
Desde ya Muchas Gracias a toda la comunidad !!!!

Mi código es:

A tener en cuenta la siguiente definición de variables:

// &smtp es variable del tipo SMTPSession
// &Mail es variable del tipo MailMessage
// &Destinos es variable del tipo MailRecipient
// &Serv hace referencia al mail del remitente C60
// &RMail hace referencia al mail del destinatario C60
// &To hace referencia al nombre del remitente C60
// &CC y &CO son 2 destinatarios mas C60
// &Asunto hace referencia al asunto del correo C60
// &TexMail hace referencia al cuerpo del correo. Es de tipo Long Varchar de 10000
// &Attach es el path del adjunto C60
// &errrcode N10

-----------------------------------------Webpanel "Llamador" ----------------------------------------------------------
// existe un bottón "enviar" asociado al evento 'Enviar'
Event 'Enviar'
Call(PSendMail,&Serv,&RMail,&To,&CC,&CO,&Asunto,&TexMail,&Attach) // le envio los datos del formulario
EndEvent // 'Enviar'

------------------------------------------ Proceso "SendMail" -----------------------------------------------------------
-----------Rules-----------

PARM(&Serv, &RMail, &To, &CC, &CO, &Asunto, &TexMail, &Attach);

----------Source----------

&smtp.Host = 'smtp.gmail.com' //(SMTP.SMTPserver.COM.AR)
&smtp.Port = 465 // o 25, 587
&smtp.Sender.Address = &Serv //Email remitente, o sea, quien manda el mail
&smtp.Sender.Name = &To //Nombre del remitente
&smtp.Secure = 1 // si no se trabaja con HTTPS, el valor sera 0 o comentar
&smtp.Authentication = 1 //si el correo no requiere pass por ser local, el valor sera 0 o comentar
&smtp.UserName = &Serv //direccion de correo saliente o del remitente
&smtp.Password = 'xxxxxxxxxx' // //si el correo no requiere pass por ser local, comentar
&smtp.Login()
&Mail.Clear()
&Mail.To.New("", &RMail)
if &CC <> ""
&Destinos.Address = &CC
&Destinos.Name = "" // destinatario 1, pero no le envie parametro. Asi que no hay nombre
&Mail.CC.Add(&Destinos)
endif
if &CO <> ""
&Destinos.Address = &CO
&Destinos.Name = "" // destinatario 2, pero no le envie parametro. Asi que no hay nombre
&Mail.CC.Add(&Destinos)
endif

&Mail.Subject = &Asunto
&Mail.Text = &TexMail
&Mail.Attachments.Clear()
if &Attach <> ""
&Mail.Attachments.Add(&Attach) // &archivo
endif

&errrcode = &smtp.ErrCode // adjunto numero de codigo de error
If &errrcode = 0 Or &errrcode = 1
&smtp.Send(&Mail) // Envio del mail
// &smtp.Timeout = 600
&smtp.Logout()
Msg("Mail enviado satisfactoriamente")
Else
Msg('El envio del mail fallo, el número de error es ' + Trim(Str(&errrcode)))
Endif

_________________________________________________________________
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
sin imagen de perfil
Val: 1
Ha aumentado 1 puesto en GeneXus (en relación al último mes)
Gráfica de GeneXus

RE:Problema al adjuntar archivo a correo saliente

Publicado por alejandro (4 intervenciones) el 14/11/2009 23:47:04
hola,

aca va un ejemplo q anda:

Event Enter
confirm('Mandar esta información?',N)
if confirmed()
do 'mail'
endif
EndEvent // Enter

sub 'mail'

&SMTP.Host = 'smtp.gmail.com'
&sMTP.Secure = 1
&SMTP.Port = 465
&SMTP.Sender.Name = 'pepe gonzalez'
&SMTP.Sender.Address = '[email protected]'
&SMTP.Authentication = 1
&SMTP.UserName = '[email protected]'
&SMTP.Password = 'clave'

&smtp.Login()

&smtp.AttachDir='C:\sistemas\DATA002\file.pdf'

&Mail.to.new(&toMail,&tomail)
&Mail.Subject = 'Información de .....'
&mail.Text = &mensaje
&smtp.Send(&mail)
msg(&smtp.ErrCode)
msg(&smtp.ErrDescription)
&smtp.Logout()
endsub

saludos

nota: de pronto te conviene mapear la carpeta de donde tomas el archivo.
p.e. z:\archivo.pdf
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:Problema al adjuntar archivo a correo saliente

Publicado por Luciano Lator (3 intervenciones) el 17/11/2009 14:17:34
Al final solucione el tema de la siguiente manera:

en vez de usar &Attach como C60, la cree como Blod. Lo bueno es que envia el archivo. Lo malo es que le cambia el nombre.

Saludos a toda la comunidad.
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