Enviar email anexando um executável
Enviado: 27 Abr 2020 07:55
O GMAIL não permite anexar esses tipos de arquivos:
.ade, .adp, .apk, .appx, .appxbundle, .bat, .cab, .chm, .cmd, .com, .cpl, .dll, .dmg, .exe, .hta, .ins, .isp, .iso, .jar, .js, .jse, .lib, .lnk, .mde, .msc, .msi, .msix, .msixbundle, .msp, .mst, .nsh, .pif, .ps1, .scr, .sct, .shb, .sys, .vb, .vbe, .vbs, .vxd, .wsc, .wsf, .wsh
Mas tem como "enganar" o gmail usando TipEncoderBase64()
oEncoder := TipEncoderBase64():New()
Hb_MemoWrit( "ASAPREV.TXT", oEncoder:Encode( Hb_MemoRead( [ASAPREV.EXE] ) ) ) //para encondar
Hb_MemoWrit( "ASA.EXE", oEncoder:Decode( Hb_MemoRead( [ASAPREV.TXT] ) ) ) //desencodar
O arquivo asaprev.txt pode ser anexando ao email, quando o arquivo for baixando ele pode ser desencodado usando o método Decode.
Um teste usando de recepção de email desanexando o arquivo encodado
Vai precisar da OPENSSL a última versão é 1.1.1G baixar a versão 32bits
Baixar aqui: https://bintray.com/vszakats/generic/openssl
Depois que baixar, copiar as DLL´s que ficam na raiz: libcrypto-1_1.dll e libssl-1_1.dll para a pasta onde for testar a recepção do email
.ade, .adp, .apk, .appx, .appxbundle, .bat, .cab, .chm, .cmd, .com, .cpl, .dll, .dmg, .exe, .hta, .ins, .isp, .iso, .jar, .js, .jse, .lib, .lnk, .mde, .msc, .msi, .msix, .msixbundle, .msp, .mst, .nsh, .pif, .ps1, .scr, .sct, .shb, .sys, .vb, .vbe, .vbs, .vxd, .wsc, .wsf, .wsh
Mas tem como "enganar" o gmail usando TipEncoderBase64()
oEncoder := TipEncoderBase64():New()
Hb_MemoWrit( "ASAPREV.TXT", oEncoder:Encode( Hb_MemoRead( [ASAPREV.EXE] ) ) ) //para encondar
Hb_MemoWrit( "ASA.EXE", oEncoder:Decode( Hb_MemoRead( [ASAPREV.TXT] ) ) ) //desencodar
O arquivo asaprev.txt pode ser anexando ao email, quando o arquivo for baixando ele pode ser desencodado usando o método Decode.
Um teste usando de recepção de email desanexando o arquivo encodado
Vai precisar da OPENSSL a última versão é 1.1.1G baixar a versão 32bits
Baixar aqui: https://bintray.com/vszakats/generic/openssl
Depois que baixar, copiar as DLL´s que ficam na raiz: libcrypto-1_1.dll e libssl-1_1.dll para a pasta onde for testar a recepção do email
Código: Selecionar todos
#if ! defined( __HBSCRIPT__HBSHELL )
REQUEST __HBEXTERN__HBSSL__
#endif
IF ! tip_SSL()
RETURN Nil
ENDIF
cUser := StrTran( "xhbsistemas", "@", "&at;" )
cPassword := "1234567"
oUrl1 := tUrl():New( "pops://" + cUser + ":" + cPassword + "@pop.gmail.com" )
oUrl1:cUserid := Strtran( cUser, "&at;", "@" )
oClient := TIPClientPOP():New( oUrl1, .F. )
IF ! oClient:Open()
? "Connection error:", oClient:lastErrorMessage()
ENDIF
aMail = oClient:RetrieveAll( .T. ) //.t. deleta os emails recuperados
FOR i := 1 TO Len( aMail )
cMsg := ""
WHILE ( oAtt := aMail[ i ]:NextAttachment() ) != Nil
IF ! EMPTY( oAtt:GetFileName() )
cMsg += "Anexo: " + oAtt:GetFileName() + Hb_Eol()
IF ! oAtt:DetachFile(); BREAK; ENDIF
ENDIF
ENDDO
NEXT