Ir para conteúdo
  • Cadastre-se

dev botao

ACBrLibMail - Python


Ver Solução Respondido por afonso_am,
  • Este tópico foi criado há 657 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Erro de retorno -10 na função MAIL_SEND

import ctypes

lib = ctypes.cdll.LoadLibrary(r'D:\KAIQUE\TESTE\ACBrMail64.dll')
print("1", lib.MAIL_Inicializar(r'D:\KAIQUE\TESTE\kaique.ini'.encode("utf-8"), "".encode("utf-8")))
print("2", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Nome".encode("utf-8"), "Atacado Silveira".encode("utf-8")))
print("3", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Conta".encode("utf-8"), "[email protected]".encode("utf-8")))
print("4", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Usuario".encode("utf-8"), "Atacado Silveira".encode("utf-8")))
print("5", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Senha".encode("utf-8"), "senha_conta".encode("utf-8")))
print("6", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Servidor".encode("utf-8"), "smtp.office365.com".encode("utf-8")))
print("7", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Porta".encode("utf-8"), "587".encode("utf-8")))
print("8", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "SSL".encode("utf-8"), "0".encode("utf-8")))
print("9", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "TLS".encode("utf-8"), "1".encode("utf-8")))
print("10", lib.MAIL_Clear())
print("11", lib.MAIL_SetSubject("KAIQUE TESTE".encode("utf-8")))
print("12", lib.MAIL_AddAddress("[email protected]".encode("utf-8"), "Kaique Afonso".encode("utf-8")))
print("13", lib.MAIL_AddBody("KAIQUE TETEFSDJFKLÇGJSDFGKSDFKÇGD".encode("utf-8")))
print("14", lib.MAIL_Send("0".encode("utf-8")))
print("15", lib.MAIL_Finalizar())
print("FIM")

aa.PNG

  • Consultores
Postado
12 horas atrás, afonso_am disse:

Erro de retorno -10 na função MAIL_SEND

import ctypes

lib = ctypes.cdll.LoadLibrary(r'D:\KAIQUE\TESTE\ACBrMail64.dll')
print("1", lib.MAIL_Inicializar(r'D:\KAIQUE\TESTE\kaique.ini'.encode("utf-8"), "".encode("utf-8")))
print("2", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Nome".encode("utf-8"), "Atacado Silveira".encode("utf-8")))
print("3", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Conta".encode("utf-8"), "[email protected]".encode("utf-8")))
print("4", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Usuario".encode("utf-8"), "Atacado Silveira".encode("utf-8")))
print("5", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Senha".encode("utf-8"), "senha_conta".encode("utf-8")))
print("6", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Servidor".encode("utf-8"), "smtp.office365.com".encode("utf-8")))
print("7", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Porta".encode("utf-8"), "587".encode("utf-8")))
print("8", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "SSL".encode("utf-8"), "0".encode("utf-8")))
print("9", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "TLS".encode("utf-8"), "1".encode("utf-8")))
print("10", lib.MAIL_Clear())
print("11", lib.MAIL_SetSubject("KAIQUE TESTE".encode("utf-8")))
print("12", lib.MAIL_AddAddress("[email protected]".encode("utf-8"), "Kaique Afonso".encode("utf-8")))
print("13", lib.MAIL_AddBody("KAIQUE TETEFSDJFKLÇGJSDFGKSDFKÇGD".encode("utf-8")))
print("14", lib.MAIL_Send("0".encode("utf-8")))
print("15", lib.MAIL_Finalizar())
print("FIM")

aa.PNG

@afonso_am
Bom dia !
Consultando a microsoft, encontrei isso que pode ser util.
Captura de tela 2023-02-07 074845.png

Tente mudar o servidor smtp como imagem acima, se nao der certo, veja se esta habilitado no outlook.com.br o acesso pop.

 

  • Curtir 1
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

  • Membros Pro
Postado

Bom dia! Grato pela sua resposta. Consultei a configuração do email no outlook, a opção "POP" já estava ativada, e na mesma seção eles mostraram um exemplo do SMTP/Portattr.PNG.26a61029448f4ea3b77e6843cc4ff444.PNG

Eu suponho que o erro que esteja acontecendo no código acima seja referente no print(14, lib.SEND_Mail()). Somente no momento do envio que o erro acontece. Na documentação é auxiliado passar 0 -> Não usa THREAD | e 1 -> Usa THREAD. Como não estou usando thread no momento aí estou passando "0".encode("utf-8") OBS: Já tentei passando 0 em inteiro, passando False mas não vai.

Teria uma forma de ver qual foi o tipo do erro além do retorno -10?

  • Consultores
Postado

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

11 minutos atrás, afonso_am disse:

Bom dia! Grato pela sua resposta. Consultei a configuração do email no outlook, a opção "POP" já estava ativada, e na mesma seção eles mostraram um exemplo do SMTP/Portattr.PNG.26a61029448f4ea3b77e6843cc4ff444.PNG

Eu suponho que o erro que esteja acontecendo no código acima seja referente no print(14, lib.SEND_Mail()). Somente no momento do envio que o erro acontece. Na documentação é auxiliado passar 0 -> Não usa THREAD | e 1 -> Usa THREAD. Como não estou usando thread no momento aí estou passando "0".encode("utf-8") OBS: Já tentei passando 0 em inteiro, passando False mas não vai.

Teria uma forma de ver qual foi o tipo do erro além do retorno -10?

Bom dia!
Tem sim! Você pode usar o método Mail_UltimoRetorno para obter um retorno mais detalhado do erro.
Também pode configurar o Log para nível Paranoico

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membros Pro
Postado (editado)

Bom dia Diego. Li a documentação do MAIL_UltimoRetorno, e como parâmetro é passando uma mensagem e o tamanho da mensagem, não entendi muito bem qual seria a mensagem que eu passaria. Seria +/- assim:

print(lib.MAIL_UltimoRetorno("MENSAGEM".encode("utf-8"), 8))

Em relação ao nível do LOG em que momento eu defino o nível de log retornado?

é quando carrego a DLL ou quando inicializo a função do MAIL_Inicializar

lib = ctypes.cdll.LoadLibrary(r'D:\KAIQUE\TESTE\ACBrMail64.dll')
print("1", lib.MAIL_Inicializar(r'D:\KAIQUE\TESTE\kaique.ini'.encode("utf-8"), "".encode("utf-8")))
Editado por afonso_am
  • Membros Pro
Postado

Consegui configurar o LogNivel para 4 e LogPath, é dentro do arquivo .INI mas quando rodo não é gerado o arquivo de log.

 

[Principal]
TipoResposta=0
CodificacaoResposta=0
LogNivel=4
LogPath=D:\KAIQUE\TESTE\LOG.txt
  • Consultores
Postado
10 minutos atrás, afonso_am disse:

Consegui configurar o LogNivel para 4 e LogPath, é dentro do arquivo .INI mas quando rodo não é gerado o arquivo de log.

 

[Principal]
TipoResposta=0
CodificacaoResposta=0
LogNivel=4
LogPath=D:\KAIQUE\TESTE\LOG.txt

Ele deveria gerar o Log para você.
Tente usar a função ConfigLer para ter certeza de que a configuração indicada no INI foi acatada.

Uma coisa que não tinha percebido antes.

Citar

print("4", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Usuario".encode("utf-8"), "Atacado Silveira".encode("utf-8")))

Na configuração de Usuário, você deve passar o endereço de e-mail completo que usa para acessar
Veja
image.png

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membros Pro
Postado

Usei o ConfigLer. Retornou 0 normalmente, ele está conseguindo ler/alterar o arquivo .ini normalmente. Detalhe a senha do email dentro do arquivo ini foi criptografada sozinha pela própria função do MAIL_ConfigGravarValor. a função de MAIL_Send consegue descriptografar para se logar?

  • Consultores
Postado
2 minutos atrás, afonso_am disse:

Usei o ConfigLer. Retornou 0 normalmente, ele está conseguindo ler/alterar o arquivo .ini normalmente. Detalhe a senha do email dentro do arquivo ini foi criptografada sozinha pela própria função do MAIL_ConfigGravarValor. a função de MAIL_Send consegue descriptografar para se logar?

Sim, a própria Lib criptografa a senha no INI e lê na hora de enviar.
O ConfigLer retornou 0, foi gerado o Log no diretório indicado? Caso não tenha sido gerado no diretório gerado, verifique na pasta da aplicação.
Passando o endereço de e-mail para o parâmetro de usuário foi feito o envio?
 

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membros Pro
Postado

Não foi gerado LOG na pasta configurada, e ainda alterando o nome de Usuario não foi feito o envio

 

import ctypes

lib = ctypes.cdll.LoadLibrary(r'D:\KAIQUE\TESTE\ACBrMail64.dll')

print("1", lib.MAIL_Inicializar(r'D:\KAIQUE\TESTE\kaique.ini'.encode("utf-8"), "".encode("utf-8")))

print("2", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Nome".encode("utf-8"), "Atacado Silveira".encode("utf-8")))

print("3", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Conta".encode("utf-8"), "[email protected]".encode("utf-8")))

print("4", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Usuario".encode("utf-8"), "[email protected]".encode("utf-8")))

print("5", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Senha".encode("utf-8"), "minha_senha".encode("utf-8")))

print("6", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Servidor".encode("utf-8"), "smtp.office365.com".encode("utf-8")))

print("7", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "Porta".encode("utf-8"), "587".encode("utf-8")))

print("8", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "SSL".encode("utf-8"), "0".encode("utf-8")))

print("9", lib.MAIL_ConfigGravarValor("Email".encode("utf-8"), "TLS".encode("utf-8"), "1".encode("utf-8")))

print("LEITURA ->", lib.MAIL_ConfigLer(r'D:\KAIQUE\TESTE\kaique.ini'.encode("utf-8")))

print("16", lib.MAIL_ConfigGravarValor("Principal".encode("utf-8"), "LogNivel".encode("utf-8"), "4".encode("utf-8")))

print("17", lib.MAIL_ConfigGravarValor("Principal".encode("utf-8"), "LogPath".encode("utf-8"), r"D:\KAIQUE\TESTE\LOG.txt".encode("utf-8")))

print("10", lib.MAIL_Clear())

print("11", lib.MAIL_SetSubject("KAIQUE TESTE".encode("utf-8")))

print("12", lib.MAIL_AddAddress("[email protected]".encode("utf-8"), "Kaique Afonso".encode("utf-8")))

print("13", lib.MAIL_AddBody("KAIQUE TETEFSDJFKLÇGJSDFGKSDFKÇGD".encode("utf-8")))

print("14", lib.MAIL_Send("0".encode("utf-8")))

print("15", lib.MAIL_Finalizar())

print("FIM")

1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
LEITURA -> 0
16 0
17 0
10 0
11 0
12 0
13 0
14 -10
15 0
FIM

____

o print(14) ainda continua retornando -10

  • Consultores
Postado
1 hora atrás, afonso_am disse:

Consegui configurar o LogNivel para 4 e LogPath, é dentro do arquivo .INI mas quando rodo não é gerado o arquivo de log.

 

[Principal]
TipoResposta=0
CodificacaoResposta=0
LogNivel=4
LogPath=D:\KAIQUE\TESTE\LOG.txt

Por favor, passe apenas o caminho na propriedade LogPath.
Nesse caso ficaria

Citar

D:\KAIQUE\TESTE\LOG

A Lib está tentando criar o Log na pasta Log.txt e que não existe e por isso não está gerando. 
E faça um novo teste para ver se gera o arquivo de Log.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membros Pro
Postado

Ah, entendi, tem que passar somente o caminho da pasta. Configurei para D:\KAIQUE\TESTE e ele gerou um arquivo de LOG. Li ele, e na linha 159 parace que ocorreu um erro de SMTP

ACBrLibMail-20230207.log

Mas o SMTP aparentemente está correto. Hotmail/Outlook -> smtp.office365.com | No próprio ACBr Monitor ele reconhece e envia normalmente

  • Membros Pro
  • Solution
Postado

Depois que consertei o caminho do LOG e comentei esta linha de comando e executei o código novamente:  Consegui enviar o Email.

#print("LEITURA ->", lib.MAIL_ConfigLer(r'D:\KAIQUE\TESTE\kaique.ini'.encode("utf-8")))
  • Curtir 3
  • Consultores
Postado
3 minutos atrás, afonso_am disse:

Depois que consertei o caminho do LOG e comentei esta linha de comando e executei o código novamente:  Consegui enviar o Email.

#print("LEITURA ->", lib.MAIL_ConfigLer(r'D:\KAIQUE\TESTE\kaique.ini'.encode("utf-8")))

Certo, é possível que ao chamar o ConfigLer ele tenha sobrescrito com os valores do arquivo INI as configurações que foram definidas anteriormente via código e por isso o erro.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 657 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.