PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 25 → WX - Solução do erro de envio de e-mail pelo Windev/Webdev - Erro do certificado não autorizado
WX - Solução do erro de envio de e-mail pelo Windev/Webdev - Erro do certificado não autorizado
Débuté par BOLLER, 29 oct. 2017 02:18 - 3 réponses
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 29 octobre 2017 - 02:18
Prezados,

Tivemos essa semana o seguinte erro, parou de enviar emails pelo g-mail e como muitos usam para envio de notas fiscais segue aqui o exemplo de código para ajudar a todos a solucionar esse problema.

A linha mágica que resolveu o problema é essa aqui:

EmailConfigure(emailParameterMode, 1)


A mensagem de erro que estava dando erra essa aqui:

Uma cadeia de certificação foi processada, mas terminou em um
certificado raiz que não é confiável para o provedor de confiabilidade.

--

A certification chain was processed, but ended in a
root certificate that is not trusted for the reliability provider.


Primeira pessoa que falou do problema para mim e que me ligou foi o sr Amarildo Matos, o mesmo gerou um programa exemplo para eu simular o problema, meu muito obrigado

A segunda pessoa que passou o caminho das pedras foi o meu amigo Luiz Alfredo Menezes, meu muito obrigado em nome da comunidade, onde ele passou esse link:

http://faq.pcsoft.fr/15563-faq-read.awp

Desde o final de agosto, o Google lançou um novo certificado: Google Internet Authority G3. Infelizmente, a API do Windows usada para verificação de certificado não valida este certificado.

A abertura de uma sessão POP3, IMAP ou SMTP para ler ou enviar e-mails pode falhar com o retorno:

A cadeia de certificados foi fornecida por uma autoridade que não é confiável

Para habilitar a validação do certificado, aconselho você a alterar o modo de gerenciamento de e-mails. O comando EMailParamétre () permite alterar esse modo e, portanto, não usar mais a API do Windows que bloqueia esse certificado.

Aqui está o código a ser adicionado antes do início de sessão por EmailStartSession:

// Ativar a implementação entre plataformas
EmailConfigure(emailParameterMode, 1)


JUNTOS SOMOS MAIS FORTES, TRABALHANDO EM PLENO SÁBADO E ESQUENTANDO A CABEÇA CONSEGUIMOS RESOLVER.

SEGUE EXEMPLO DE USO

/////////////////////////////////////////////////////////////////////////////////

//CÓDIGO EXEMPLO - SOLUÇÃO DE ENVIO DE EMAILS PELO GMAIL COM WINDEV OU WEBDEV

EDT_retorno=""

Message("Enviando Email.....")

EmailSetTimeOut(30)
HourGlass()
n_email_sessao is boolean
EDT_retorno+="Tls:"+COMBO_tls+CR
EDT_retorno+="Email:"+EDT_EmailSender+CR
EDT_retorno+="Usuario:"+EDT_USUARIO+CR
EDT_retorno+="Smpt:"+EDT_SERVIDOR_SMTP+CR
EDT_retorno+="Porta:"+EDT_porta+CR
EDT_retorno+="Destinatario:"+EDT_destinatario+CR
EDT_retorno+="Assunto:"+EDT_ASSUNTO+CR
EDT_retorno+="Mensagem:"+EDT_MENSAGEM+CR
EDT_retorno+="Email Resposta:"+EDT_emailResposta+CR

EmailConfigure(emailParameterMode, 1)
SWITCH COMBO_tls
CASE 1
n_email_sessao=EmailStartSMTPSession(EDT_USUARIO,EDT_SENHA,EDT_SERVIDOR_SMTP,EDT_porta,False,emailOptionSecuredTLS)
CASE 2
n_email_sessao=EmailStartSMTPSession(EDT_USUARIO,EDT_SENHA,EDT_SERVIDOR_SMTP,EDT_porta)
CASE 3
n_email_sessao=EmailStartSMTPSession(EDT_USUARIO,EDT_SENHA,EDT_SERVIDOR_SMTP,EDT_porta,False,optionSSL)
CASE 4
n_email_sessao=EmailStartSMTPSession(EDT_USUARIO,EDT_SENHA,EDT_SERVIDOR_SMTP,EDT_porta,True,emailOptionSecuredTLS)
CASE 5
n_email_sessao=EmailStartSMTPSession(EDT_USUARIO,EDT_SENHA,EDT_SERVIDOR_SMTP,EDT_porta,True,optionSSL)
CASE 6
n_email_sessao=EmailStartSMTPSession(EDT_USUARIO,EDT_SENHA,EDT_SERVIDOR_SMTP,EDT_porta,True)
CASE 7
n_email_sessao=EmailStartSMTPSession(EDT_USUARIO,EDT_SENHA,EDT_SERVIDOR_SMTP,EDT_porta,False)
CASE 8
n_email_sessao=EmailStartSMTPSession(EDT_USUARIO,EDT_SENHA,EDT_SERVIDOR_SMTP,EDT_porta,True,emailOptionDefault)
CASE 9
n_email_sessao=EmailStartSMTPSession(EDT_USUARIO,EDT_SENHA,EDT_SERVIDOR_SMTP,EDT_porta,False,emailOptionDefault)
END
EmailConfigure(emailParameterMode, 1)
s_erro_string is string=""


IF n_email_sessao=True THEN
_minha_mensagem is an Email // est un Email
IF EDT_EmailSender <> "" THEN
_minha_mensagem..Sender=EDT_EmailSender
ELSE
_minha_mensagem..Sender = EDT_USUARIO
END
IF EDT_destinatario<>"" THEN
Add(_minha_mensagem..Recipient, EDT_destinatario)
END
_minha_mensagem..Subject = EDT_ASSUNTO
_minha_mensagem..Message = EDT_MENSAGEM
sEmailParaRetorno is string = EDT_emailResposta
IF sEmailParaRetorno = ""
_minha_mensagem..SenderAddress = EDT_EmailSender
END
IF sEmailParaRetorno <> "" AND EmailCheckAddress(sEmailParaRetorno) = emailAddressValid THEN
_minha_mensagem..SenderAddress = sEmailParaRetorno
ELSE
IF sEmailParaRetorno="" THEN
ELSE
EDT_retorno+="ERRO NO EMAILPARARETORNO DIFERENTE BRANCO"
END
END
_minha_mensagem..ReturnReceipt = True
IF EDT_anexo <> "" AND Length(EDT_anexo) > 3 THEN
EmailLoadAttachment(_minha_mensagem,EDT_anexo)
END
EmailConfigure(emailParameterMode, 1)
IF EmailSendMessage(EDT_USUARIO, _minha_mensagem) = False THEN
Info(CR+"COMBO_tls["+COMBO_tls+"]"+CR+"EDT_Usuario["+EDT_USUARIO+"]"+CR+"EDT_senha["+EDT_SENHA+"]"+CR+"EDT_servidor_smtp["+EDT_SERVIDOR_SMTP+"]"+CR+"EDT_porta["+EDT_porta+"]"+CR+"ErrorInfo()a=["+ErrorInfo()+"]")
s_erro_string="Erro Mandar Mesnagem:"+CR+ErrorInfo()
ELSE
InfoWithTimeout(300,"Email enviado com sucesso!")
END
EmailCloseSession(EDT_USUARIO)
ELSE
Info(CR+"COMBO_tls["+COMBO_tls+"]"+CR+"EDT_Usuario["+EDT_USUARIO+"]"+CR+"EDT_senha["+EDT_SENHA+"]"+CR+"EDT_servidor_smtp["+EDT_SERVIDOR_SMTP+"]"+CR+"EDT_porta["+EDT_porta+"]"+CR+"ErrorInfo()b=["+ErrorInfo()+"]")
s_erro_string="Erro Configuracao"+CR+ErrorInfo()
END
HourGlass(False)

EDT_retorno+="ERRO:"+s_erro_string+CR

fSaveText("\temp\email_status.txt",EDT_retorno)


Espero que consigam mandar agora sem nenhuma mensagem de erro os seus e-mails.

MEU MUITO OBRIGADO A TODOS!

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
535 messages
Popularité : +14 (14 votes)
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 30 octobre 2017 - 12:58
Bom dia pessoal,

Ou usem o e-mail do Yahoo ou de outro provedor de e-mail.

Tenham um bom dia!

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Posté le 13 mars 2018 - 04:09
¿And WebDev and WinDev Mobile?