Clipper On Line • Ver Tópico - Receber EMAIL com xHabour...

Receber EMAIL com xHabour...

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Receber EMAIL com xHabour...

Mensagempor Shark » 20 Mai 2018 06:14

Algum dos colegas possui rotina que funcione para recebimento de email via código xHarbour / FiveWin ?

Agradeço antecipadamente....
Shark
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 25 Set 2017 21:42
Cidade/Estado: Brasília - DF
Curtiu: 5 vezes
Mens.Curtidas: 3 vezes

Receber EMAIL com xHabour...

Mensagempor Shark » 01 Jun 2018 02:02

Pesquisei e acabei encontrando um código que funciona pra RECEBER EMAIL COM XHARBOUR / FIVEWIN...

Entretanto, os testes que fiz funcionaram com os emails do meu domínio utilizando POP.
Ainda não testei com google, hotmail e etc. Quem quiser testar e postar aqui o resultado agradeceremos a contribuição.

Segue o código...

#include "FiveWin.ch"

STATIC oWnd

//----------------------------------------------------------------------------//

FUNCTION MAIN()

GetMail( "acessosoft.com.br", "autoescola@acessosoft.com.br", "autocfc123" )

DEFINE WINDOW oWnd FROM 1,5 TO 20,75 TITLE "GetMail"

ACTIVATE WINDOW oWnd ON INIT GetMail()

RETURN NIL

//----------------------------------------------------------------------------//

STATIC FUNCTION GetMail( cServer, cUser, cPassword )

    LOCAL lOk := .F.

    LOCAL oCli

    LOCAL aMail, aPar, cMsg, oAtt

    LOCAL i

    TRY
        oCli = TIPClientPOP():New( "pop://" + STRTRAN( cUser, "@", "&at;" ) + ":" + cPassword + "@" + cServer )

        IF EMPTY( oCli ); BREAK; ENDIF

        oCli:oUrl:cUserid = cUser

        IF !oCli:Open()

           BREAK

        ENDIF

        aMail = oCli:RetrieveAll()

        FOR i = 1 TO LEN( aMail ) - 1
            aPar = aMail[ i ]:GetMultiParts()

            IF LEN( aPar ) = 0
                cMsg = "Data: " + aMail[ i ]:GetFieldPart( "Date" ) + CRLF +;
                       "Assunto: " + aMail[ i ]:GetFieldPart( "Subject" ) + CRLF +;
                       "De: " + aMail[ i ]:GetFieldPart( "From" ) + CRLF + CRLF +;
                       "Mensagem: " + CRLF + CRLF + aMail[ i ]:GetBody()
            ELSE
                cMsg = "Data: " + aMail[ i ]:GetFieldPart( "Date" ) + CRLF +;
                       "Assunto: " + aMail[ i ]:GetFieldPart( "Subject" ) + CRLF +;
                       "De: " + aMail[ i ]:GetFieldPart( "From" ) + CRLF + CRLF +;
                       "Mensagem: " + CRLF + CRLF + BODY( aPar )
            ENDIF

            WHILE ( oAtt := aMail[ i ]:NextAttachment() ) != NIL

                IF !EMPTY( oAtt:GetFileName() )

                    cMsg += CRLF + "Anexo: " + oAtt:GetFileName()

//                    IF !oAtt:DetachFile(); BREAK; ENDIF
                ENDIF

            ENDDO

            MEMOWRIT( "d:\xemail.txt", cMsg )

        NEXT

        lOk = .T.
    CATCH
    END

    IF !EMPTY( oCli ); oCli:Close(); ENDIF

    RETURN lOk

//----------------------------------------------------------------------------//

STATIC FUNCTION BODY( aPar )

    LOCAL cMsg := ""

    LOCAL i

    FOR i = 1 TO LEN( aPar )
        IF EMPTY( aPar[ i ]:GetFieldPart( "Content-Disposition" ) )
            cMsg += aPar[ i ]:GetBody()
        ENDIF
    NEXT

    RETURN ALLTRIM( cMsg )

//----------------------------------------------------------------------------//

Shark
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 25 Set 2017 21:42
Cidade/Estado: Brasília - DF
Curtiu: 5 vezes
Mens.Curtidas: 3 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro