Ir para conteúdo
  • Cadastre-se

dev botao

ACBrLibMail - Python


Ver Solução Respondido por afonso_am,
  • Este tópico foi criado há 743 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á 743 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...