Ir para conteúdo
  • Cadastre-se

sucsis

Membros
  • Total de ítens

    16
  • Registro em

  • Última visita

Community Answers

  1. sucsis's post in Envio de e-mail através de SMTP Yahoo e Outlook was marked as the answer   
    No Outlook, após algum tempo ao logar ele me solicitou confirmar o número de celular, a partir daí o envio começou a funcionar. No Yahoo não aconteceu isso, mas passou a funcionar sozinho também.
  2. sucsis's post in Não consigo enviar email através da ACbrLibMail.dll (funções sempre retorna -1) was marked as the answer   
    Atualização
    Depois de passar a tarde inteira tentando, descobri que o funcionamento da DLL é por instância, fazendo com que a forma tradicional de declaração não funcionasse como o esperado.
    Exemplo: 
    DLL32 Function MAIL_Finalizar() AS _INT PASCAL FROM "MAIL_Finalizar" LIB "ACBrMail32.DLL" O código acima funcionará no sentido de expor esta função da DLL para sua aplicação, porém para cada função que você chamar, estará fazendo de um objeto diferente, assim as funções não funcionará adequadamente.

    A Solução? 
    Simples, no início do PRG criei uma variável global chamada xDllMail e atribuí para ela o handle da DLL carregada na memória, dessa forma:
    Public xDllMail := LoadLib32("ACBrMail32.DLL") No final do PRG, na declaração das funções, em vez de colocar LIB "ACBrMail32.DLL" coloquei LIB xDllMail, ficando a declaração das funções da seguinte forma:
    DLL32 Function MAIL_Finalizar() AS _INT PASCAL FROM "MAIL_Finalizar" LIB xDllMail Dessa forma, todas as funções foram declaradas a partir da mesma instância, fazendo a DLL funcionar corretamente.
    Sobre o método Send() retornando -10, constatei que a senha estava gravada sem a criptografia, pois eu a inseri manualmente no arquivo .INI. Para funcionar a adequadamente, no código utilizei
     MAIL_ConfigGravarValor("Email","Senha","minhaSenha") MAIL_ConfigGravar("C:\config.ini") Dessa forma, a senha será gravada no arquivo .INI com a criptografia, fazendo tudo funcionar corretamente.
    Após isso, consegui enviar emails normalmente. Amanhã farei mais testes, se tudo correr bem encerrarei este tópico.
  3. sucsis's post in Funções UltimoRetorno(), Nome() e Versao() não funcionam was marked as the answer   
    Consegui resolver. 
    O problema em questão tem haver com as declarações mas não com os tipos propriamente ditos. Tanto na declaração quanto na chamada da função, é necessário informar que o argumento deve ser enviado como referência, simplesmente adicionando um "@" antes do nome do parâmetro, da seguinte forma:
    DLL32 Function MAIL_UltimoRetorno(@vMsgRet AS STRING, @vTamBuf AS _INT) AS _INT PASCAL FROM "MAIL_UltimoRetorno" LIB xDllMail  
    Observação: Acredito que a classe disponibilizada nos fontes funcione somente para Harbour e não para xHarbour Comercial, se possível alguém poderia realizar este teste para verificar. Pois realmente tentei utilizá-la e sem modificar as chamadas das funções nada funciona.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.