Ir para conteúdo
  • Cadastre-se

dev botao

ACBR Mail e GMAIL - Retorno Ok caindo em exceção


educms
  • Este tópico foi criado há 1690 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia, estou com a seguinte questão:

Inicio o envio de arquivos pelo ACBR Mail, utilizando o GMAIL e durante o envio, recebo a seguinte exceção:

"SMTP Error: Unable to send Mail data. 250 2.0.0 OK  1562761878 d26sm948820qkl.97 - gsmtp"

Porém, quando verifico na caixa de entrada, o e-mail foi enviado corretamente. Como proceder?

Encontrei a seguinte referência:

"SMTP Status 250 : The mail server has successfully delivered the message! This is the best SMTP reply (250) to receive - your message has been accepted and transmitted OK ! 250 is effectively a status code rather than an error code – there is no such thing as an SMTP error 250."

Link para o comentário
Compartilhar em outros sites

  • Consultores
46 minutos atrás, educms disse:

Bom dia, estou com a seguinte questão:

Inicio o envio de arquivos pelo ACBR Mail, utilizando o GMAIL e durante o envio, recebo a seguinte exceção:

"SMTP Error: Unable to send Mail data. 250 2.0.0 OK  1562761878 d26sm948820qkl.97 - gsmtp"

Porém, quando verifico na caixa de entrada, o e-mail foi enviado corretamente. Como proceder?

Encontrei a seguinte referência:

"SMTP Status 250 : The mail server has successfully delivered the message! This is the best SMTP reply (250) to receive - your message has been accepted and transmitted OK ! 250 is effectively a status code rather than an error code – there is no such thing as an SMTP error 250."

Você pode verificar se todos os dados da mensagem foi enviada corretamente? Talvez tenha faltado alguma linha ou character?

Eu verifiquei o código que é na verdade na sua maior parte da Synapse. Me parece que a verificação para o retorno 250 está OK. Veja:

function TSMTPSend.MailData(const Value: Tstrings): Boolean;
(...)
  FSock.SendString('.' + CRLF);
  Result := ReadResult div 100 = 2;
end;

 

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Consultores
1 hora atrás, educms disse:

Esse tratamento foi implementando a pouco tempo?

Não... me parece que está há bastante tempo...

1 hora atrás, educms disse:

verifiquei aqui e a mensagem foi completa. Pode ser por falta de atualização do componente?

Acho que não. Talvez você tenha caído em alguma situação que não conseguimos reproduzir. Ou seja algum outro problema.

Você consegue debugar essa parte do código e verificar o que está acontecendo?

Se for possível. Comece pela procedure TACBrMail.SendMail na unit ACBrMail.pas.

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Consultores
16 horas atrás, educms disse:

Sim, assim que eu debugar eu posto o resultado aqui. Muito obrigado!

Deixa eu só me corrigir aqui, porque talvez tenha passado a impressão errada:

Por favor, faça o debug com os componentes atualizados. Assim facilitará para que possamos acompanhar seus testes.

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Boa tarde @EMBarbosa, atualizei o componente conforme indicado. Debuguei a procedure e na parte:

  for vAttempts := 1 to fAttempts do
  begin
    if fSMTP.MailData(fMIMEMess.Lines) then
      Break;

    if vAttempts >= fAttempts then
      SmtpError('SMTP Error: Unable to send Mail data.' + sLineBreak + SMTP.ResultString);
  end;

Quando a condicional é satisfeita e entra no SmtpError, o SMTP.ResultString contem a mensagem de erro e realmente retorna a exceção. Porém o e-mail é transmitido corretamente.

Mensagem de erro:

SMTP Error: Unable to send Mail data. 503 5.5.1 MAIL first. g2sm2570158qkf.32 - gsmtp"

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
16 minutos atrás, educms disse:

Boa tarde @EMBarbosa, atualizei o componente conforme indicado. Debuguei a procedure e na parte:

  for vAttempts := 1 to fAttempts do
  begin
    if fSMTP.MailData(fMIMEMess.Lines) then
      Break; 

    if vAttempts >= fAttempts then
      SmtpError('SMTP Error: Unable to send Mail data.' + sLineBreak + SMTP.ResultString);
  end;

Quando a condicional é satisfeita e entra no SmtpError, o SMTP.ResultString contem a mensagem de erro e realmente retorna a exceção. Porém o e-mail é transmitido corretamente.

Oi educms,

  Nesse momento, o erro já aconteceu mesmo... Tem como você verificar o funcionamento da função MailData aí na terceira linha?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Bom dia @EMBarbosa, no debug da função mencionada. Cheguei ao seguinte caminho:

Acompanhando a function TSMTPSend.ReadResult: Integer;, notei que durante o processo de envio os retornos do GMAIL são recebidos corretamente, mais não consegui identificar porque estão caindo nas exceções do ACBRMail.

Porém, notei que abrindo o local variables durante o debug,  recebo como últimos retornos antes da exceção o 250 2.0.0 OK seguido do 503 5.5.1 MAIL first. Sendo que em ambos os casos quando qualquer um dos dois retornos é o ultimo o e-mail é enviado corretamente, mais ao final do processo sempre cai na exceção do componente.  

Estou utilizando o evento OnMailException, pois estou utilizando uma instancia do componente e criando ele em runtime.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Ficaria mais fácil se tivéssemos como reproduzir... :(

2 horas atrás, educms disse:

Porém, notei que abrindo o local variables durante o debug,  recebo como últimos retornos antes da exceção 250 2.0.0 OK seguido do 503 5.5.1 MAIL first.

Assumindo que eu entendi como você fez o debug... :)

O retorno 503 é um erro. Na verdade erro de sequência de comandos (veja a RFC). O protocolo SMTP precisa ser seguido na ordem de comunicação estabelecida.

Isso também é o que quer dizer o "Status Code" 5.5.1 (nessa outra RFC)

Citar

"5.xxx.xxx" - Falha permanente

"X.5.1" - comando inválido

Pelo meu entendimento, o servidor deles está aguardando um comando MAIL antes (https://tools.ietf.org/html/rfc5321#section-4.3).

Isso pode explicar o motivo de TSMTPSend.MailData estar retornando false e gerando o exception.

Se na comunicação está detectando essa situação, então está correto em informar que houve erro.

Talvez  algum comando anterior não está sendo feito de maneira correta como o login. Talvez exista mais de um e-mail, ou talvez mais de um endereço na lista CC/BCC e um deles está dando erro.

Não sei se você já tentou, mas pra estabelecer que não é o ambiente:

  • tente com outra conta;
  • Tente com a mesma conta, mas em outra máquina e rede;
  • simplifique o e-mail;
2 horas atrás, educms disse:

Estou utilizando o evento OnMailException, pois estou utilizando uma instancia do componente e criando ele em runtime

Você consegue reproduzir o problema no DEMO? Ou ele só acontece em sua aplicação?

  • Curtir 2

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Boa tarde @EMBarbosa, o erro está ocorrendo na aplicação. No demo ainda não testei. E o erro ocorre somente com GMAIL, outlook e yahoo não retornam erro algum. Eu já tinha olhado as referencias também. Por isso achei estranho o erro ocorrer e o e-mail chegar corretamente. Vou testar no demo e retorno assim que acabar.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
16 minutos atrás, paiaka2012 disse:

Mesmo erro aqui, já tentei com várias contas diferentes e sempre ocorre o mesmo erro "unable to login". Tanto na minha aplicação como o demo do ACBR, delphi 7 e também no 10.2.  

image.png

Usando conta do gmail, yahoo e particular.

Gmail já configurei toda parte de segurança, usei porta 587 ativando TLS e desativando SSL (erro ready to start TLS), já desativei TLS e ativei SSL usando porta 465 (Gmail manda email avisando sobre conexão não segura), já deixei ambos ativados e usei ambas as portas e sempre o mesmo erro de login.

Outras contas sempre erro de login, não importa como configure.

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
Em 26/07/2019 at 14:02, paiaka2012 disse:

Mesmo erro aqui, já tentei com várias contas diferentes e sempre ocorre o mesmo erro "unable to login". Tanto na minha aplicação como o demo do ACBR, delphi 7 e também no 10.2.  

Olá,

   acho que você confundiu de tópico. Essa mensagem não tem relação com o que estamos falando nesse tópico. Tem vários tópicos no fórum falando sobre esse assunto. Queira usar a pesquisa ou talvez criar um novo tópico.

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Administradores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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 !!

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1690 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.