domingo, noviembre 20, 2016

Recibir Correos con genexus.

Resultado de imagen de recibir correos 
Uno de los problemas frecuentes que se tiene para el proceso de GESTION DE CORREOS es su recepeciòn, aqui un pequeño ejemplo de como hacerlo, cuando el correo tiene adjuntos.


// La variables &Envio y &Recibo deben estar definidas de tipo MailMessage
// &MensSMTP debe ser de tipo SMTPSession y
// &MensPOP3 de tipo POP3Session
// y las variables &DirTo y &DirCc deben ser de tipo MailRecipient.

// La variable &From debe ser de Tipo: MailRecipien
// La variable &Mensaje debe ser de tipo: MAPISessio

// La variable &MensPOP3 debe ser de tipo: POP3Session
// La variable &MiXml debe ser de tipo: LongVarChar(2M)

// La variable &Recibo debe ser de tipo: MailMessage
// La variable &SDTAjuntosItem debe ser una estructura de datos para guardar los archivos y mensajes recibidos.

    &Carpeta.Source        =    "c:/Tomcat7/webapps/temporal/"
    &MensPOP3.Host      =     "pop.googlemail.com"
    &MensPOP3.Host      =     "pop.gmx.com"
    &MensPOP3.Port       =    995
    &MensPOP3.Secure   =    1
    &MensPOP3.UserName     =     "sasasarespaldos@gmx.es"
    &MensPOP3.Password     =     "xxxx2015zxxxz"
    &MensPOP3.AttachDir    =    &Carpeta.GetAbsoluteName()    //    "c:/Tomcat7/webapps/temporal/"
//    &MensPOP3.NewMessages = 1
    &Errores    =    &MensPOP3.Login()
    &MsgError    =    &MensPOP3.ErrDescription
    If &MensPOP3.Count > 0    //Hay mensajes para recibir
        &Nro    = &MensPOP3.Count
        &Pos    =     1
        Do While &Pos    <=     &Nro
            &MensPOP3.Receive(&Recibo)
            &Errores     =     &MensPOP3.ErrCode
            &MsgError      =    &MensPOP3.ErrDescription
            If &Errores    =    0
                &Contador                 =    &Recibo.Attachments.Count
                For &Ubi     =    1    TO     &Contador
                    &SDTAjuntosItem            =    new()
                    &SDTAjuntosItem.Nombre    =    &Recibo.Attachments.Item(&Ubi).ToLower()
                    &Adjuntos.Add(&SDTAjuntosItem)
                    If &SDTAjuntosItem.Nombre.Contains(".xml")
                        &Archivo.Source    =    &Carpeta.GetAbsoluteName()    +    "\"    +    &Recibo.Attachments.Item(&Ubi).Trim()
                        &MiXml            =    &Archivo.ReadAllText()
                    Endif   
                EndFor
                &From         =     &Recibo.From
                &Cuenta     =    &From.Address
                &Nombre     =    &From.Name
                &Fechaenv     =     &Recibo.DateSent
                &Fecharec     =     &Recibo.DateReceived
                &Sub         =     &Recibo.Subject
                &Textohtml     =     &Recibo.HTMLText
                &Texto         =    &Recibo.Text
            EndIf   
            &Pos        +=    1
        EndDo
    Endif
Endevent

Un detalle de las variables utilizadas:

No hay comentarios: