|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
lucasc Membro Junior
Registrado: Quinta-Feira, 10 de Mai de 2007 Mensagens: 305
|
Enviada: Sex Set 27, 2024 5:12 pm Assunto: Enviar E-Mail conta google |
|
|
Olá pessoal,
Criei uma interface para envio de e-mail usando uma conta Google, porém recebo a seguinte mensagem de erro:
Erro na conexão ou autenticação: Application-specific password required. For more information, go to
https://support.google.com/mail/?p=InvalidSecondFactor 41be03b00d2f7-7e6db610e9esm1958536a12.80 - gsmtp
Pelo que pesquisei, é alguma coisa no Google, mas não sei o que.
Vi esse o vídeo a seguir, mas não encontro esse local de senha APP nas configurações de conta do Google, parece que esse recurso foi desativado.
https://youtu.be/jjUUM0XNg88?si=j43cFUgi-9RIR8_u
Código:
Código: |
// variáveis e objetos necessários para o envio
IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
IdSMTP: TIdSMTP;
IdMessage: TIdMessage;
IdText: TIdText;
sAnexo: string;
begin
// Instanciação dos objetos
IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(Self);
IdSMTP := TIdSMTP.Create(Self);
IdMessage := TIdMessage.Create(Self);
try
// Configuração do protocolo SSL (TIdSSLIOHandlerSocketOpenSSL)
Screen.Cursor :=crHourGlass;
Application.ProcessMessages;
IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv23;
IdSSLIOHandlerSocket.SSLOptions.Mode := sslmClient;
// Configuração do servidor SMTP (TIdSMTP)
IdSMTP.IOHandler := IdSSLIOHandlerSocket;
IdSMTP.UseTLS := utUseExplicitTLS; //utNoTLSSupport,utUseImplicitTLS,utUseRequireTLS,utUseExplicitTLS
IdSMTP.AuthType := satDefault;
//Pega os parâmetros SMTP do banco
IdSMTP.Host := QueryMailHOST.Text; //Servidor SMTP
IdSMTP.Port := StrToint(QueryMailPORTA.Text);//Porta
IdSMTP.Username := QueryMailUSUARIO.Text; //Usuário
IdSMTP.Password := QueryMailSENHA.Text; //Senha
// Configuração da mensagem (TIdMessage)
IdMessage.From.Address := QueryMailUSUARIO.Text; //Remetente
IdMessage.From.Name := 'Remetente'; //Nome Remetente
IdMessage.ReplyTo.EMailAddresses := IdMessage.From.Address;
IdMessage.Recipients.Add.Text := EditEmail.Text; //Destinatário
IdMessage.Subject := 'Assunto'; //Assunto
IdMessage.Encoding := meMIME;
// Configuração do corpo do email (TIdText)
IdText := TIdText.Create(IdMessage.MessageParts);
{Corpo do e-mail}
IdText.Body.Add('Olá! Tudo bem?');
IdText.ContentType := 'text/plain; charset=iso-8859-1';
// Conexão e autenticação
try
IdSMTP.Connect;
IdSMTP.Authenticate;
except
on E: Exception do
begin
MessageDlg('Erro na conexão ou autenticação: ' + E.Message, mtWarning, [mbOK], 0);
Exit;
end;
end;
// Envio da mensagem
try
IdSMTP.Send(IdMessage);
GravaStatusMensagem('Mensagem enviada com sucesso em '+FormatDateTime('dd/mm/yyyy hh:mm',now));
except
on E: Exception do
begin
GravaStatusMensagem('Erro no envio da mensagem em '+FormatDateTime('dd/mm/yyyy hh:mm',now));
end;
end;
finally
IdSMTP.Disconnect; //desconecta do servidor
UnLoadOpenSSLLibrary; //liberação da DLL
FreeAndNil(IdMessage); //liberação dos objetos da memória
FreeAndNil(IdSSLIOHandlerSocket);
FreeAndNil(IdSMTP);
Screen.Cursor:=crDefault;
end;
|
|
|
Voltar ao Topo |
|
|
lucasc Membro Junior
Registrado: Quinta-Feira, 10 de Mai de 2007 Mensagens: 305
|
Enviada: Seg Set 30, 2024 8:02 am Assunto: [Resolvido] |
|
|
Consegui seguir, parametrizando o acesso à conta em duas etapas, e criando uma senha APP
Obrigado. |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|