Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Autentificando por SMTP delphi 8


Arrais Júnior

Pergunta

olá, sou iniciante em delphi, aliás, nem isso sou!

tou tentando fazer com que o meu componente idSMTP do delphi 8 autentifique no email do BOL,

IdSMTP1.AuthenticationType := [color=#FF0000]atLogin[/color];
IdSMTP1.Host := 'smtp.gmail.com';
IdSMTP1.Username := 'seulogin@gmail.com';
IdSMTP1.Password := 'suasenha';
IdSMTP.Connect(3000);
o problema tá na autentificação, até existe o authenticationtype, mas somente atnone e atsasl. Não existe o atLogin tenho que baixar alguma outra versão de algo? instalar onde? outro problema que tou tendo é, ele dar esse erro, object reference not set to an instance of an object., como se eu não tivesse colocado os componentes na minha form. tudo que eu fiz foi:
procedure TForm1.Button1Click(Sender: TObject);
begin
  IdMessage1.Subject := 'assunto';
  IdMessage1.Body.Add('primeira linha');
  IdMessage1.Body.Add('última linha');
  IdMessage1.From.Address := 'Email@bol.com.br';
  IdMessage1.Recipients.Clear;
  IdMessage1.Recipients.Add.Address := 'Email@bol.com.br';
  ShowMessage('Mensagem Pronta');

  idpop31.Host := 'pop3.bol.com.br';
  ShowMessage('conectando em pop');
  idpop31.Username := 'LoginEmail';
  idpop31.Password := 'SenhaEmail';
  idpop31.Connected;
  ShowMessage('autentificando Login e Senha');
  ShowMessage('Conectado em pop');

  IdSMTP1.AuthenticationType := atLogin;
  IdSMTP1.Host := 'smtps.bol.com.br';
  IdSMTP1.Username := 'LoginEmail';
  IdSMTP1.Password := 'SenhaEmail';
  IdSMTP.Connect(3000); 

end;

end.

esses showmessage eu fiz pra mim saber até onde tava prestando :P, detalhe, não sei como eu olho a minha versão do indy.

obrigado.

Editado por Micheus
Incluída tag's CODE para melhorar a visualização. Utilize a identação também ;)
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
tou tentando fazer com que o meu componente idSMTP do delphi 8 autentifique no email do BOL

Tente dessa maneira:

procedure TForm1.Button1Click(Sender: TObject);
begin
  //Configuração do IdMessage (dados da mensagem)

  IdMessage1.From.Address := 'fulano@bol.com.br';              //e-mail do remetente
  IdMessage1.Recipients.EMailAddresses := 'sicrano@bol.com.br';//e-mail do destinatário
  IdMessage1.Subject := 'Assunto do e-mail';                   //Assunto
  IdMessage1.Body.Add('Mensagem do e-mail');                   //Corpo da mensagem

  //Configuração do IdSMTP (dados do servidor de email)

  IdSMTP1.BoundIP := '200.70.160.140';        //Endereço IP da sua Maquina no momento
  IdSMTP1.Host := 'smtps.bol.com.br';         //Host SMTP do bol
  IdSMTP1.Port := 25;                         //Porta do bol
  IdSMTP1.Username := 'fulano@bol.com.br';    //Login do usuário
  IdSMTP1.Password := 'senha';                //Senha do usuário
  IdSMTP1.AuthenticationType := atLogin;      //tipo da autenticação
  IdSMTP1.Connect;                            //Estabelece a conexão
  IdSMTP1.Authenticate;                       //Faz a autenticação

  try
      IdSMTP1.Send(IdMessage1);                   //Envia a mensagem
  except
      showmessage('ERRO');                        //Mensagem de erro
  end;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

não tá dando,

tah dando erro na linha

IdSMTP1.BoundIP := '200.10179.154';

ele não reconhece esse comando, tipo, eu tou achando que meu delphi é pobre, ele não reconhece alguns comandos, acho que falta alguma atualização, queria algum link pra mim baixar essa tal atualização, e tipo, que alguém me ensinasse a instalar, pois de delphi, não entendo nada!

tipo, se eu digitar IdSMTP1.AuthenticationType só vou ter as opções de AtNone e AtSasl.

meu 'projeto" é simples, eu estava querendo 1 TButton, 1 TEdit1. a pessoa escreve algo no TEdit1 e aperta o Button, ai envia o que ela escreveu pro meu email. Mais, primeiro, tenho que aprender a fazer mandar o email, depois vou v como coloca pra o TEdit1 ser o corpo da mensagem.

obrigado.

Editado por Arrais Júnior
Link para o comentário
Compartilhar em outros sites

  • 0

não tá dando,

tah dando erro na linha

IdSMTP1.BoundIP := '200.10179.154';

Não será porque faltou um ponto => IdSMTP1.BoundIP := '200.101.79.154';

tipo, se eu digitar IdSMTP1.AuthenticationType só vou ter as opções de AtNone e AtSasl.

IdSMTP1.AuthenticationType := atLogin; // tem que ser este se não, não faz a autenticação que o Bol precisa

meu 'projeto" é simples, eu estava querendo 1 TButton, 1 TEdit1. a pessoa escreve algo no TEdit1 e aperta o Button, ai envia o que ela escreveu pro meu email. Mais, primeiro, tenho que aprender a fazer mandar o email, depois vou v como coloca pra o TEdit1 ser o corpo da mensagem.

IdMessage1.Body.Add(Edit1.Text); //Corpo da mensagem

ou usando um Memo

IdMessage1.Body.Add(Memo1.Lines.Text); //Corpo da mensagem

Mas foi exatamente o que te passei ... usando somente um botao e um edit

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

coloquei o ponto, e deu erro.

ok, entendi a lógica e tals, mais tipo, não dar pra mim escrever o atlogin, será que existe esse comando no delphi 8? será que não existe como eu baixar algo que me deixe usar esse comando?

outra coisa, existe uma prioridade na sequência? eu tenho que colocar primeiro as idmessage, depois o idpop, depois o idsmtp ?nessa orden?

{Configurações POP}

idpop31.Host := 'pop3.bol.com.br';

ShowMessage('conectando em pop');

idpop31.Username := 'email';

idpop31.Password := 'senha';

idpop31.Connected;

ShowMessage('autentificando Login e Senha');

ShowMessage('Conectado em pop');

{Configurações Message}

IdMessage1.From.Address := 'email@bol.com.br';

IdMessage1.Recipients.EMailAddresses := 'email@bol.com.br';

IdMessage1.Subject := 'Assunto';

IdMessage1.Body.Add(Edit1.text);

IdMessage1.Body.Add(Edit2.text);

{Configurações SMTP}

IdSMTP1.AuthenticationType := atLogin;

IdSMTP1.Host := 'smtps.bol.com.br';

IdSMTP1.Username := 'LoginEmail';

IdSMTP1.Password := 'SenhaEmail';

IdSMTP.Connect;

IdSMTP1.Send(IdMessage1)

Acho que se eu conseguir fazer o delphi aceitar esse comando de atlogin, vai dar certo.

Então, tou achando que o problema tá nesse comando de atlogin, não que ele esteja errado, o problema é que não dar para usa-lo aqui no meu delphi, existe alguma maneira deu habilitá-lo?, fazendo download de alguma coisa ou algo do tipo?

obrigado, e desculpa pela dor de cabeça.

Editado por Arrais Júnior
Link para o comentário
Compartilhar em outros sites

  • 0
não existe como eu baixar algo que me deixe usar esse comando?

A versão do Iny que vem com o delphi 7 funciona perfeitamente, talves voce tenha que baixar outra versão do indy para o delphi 8... vai ai alguns endereços para baixar o arquivo

OBS: lembre-se que para instalar outra versão do indy voce deve desinstalar a anterior primeiro

http://www.indyproject.org/Sockets/fpc/indy-10.2.0.3.zip

http://downloads.atozed.com/indy/indy10.1.5_d7.exe

http://indy.fulgan.com/ZIP/

um exemplo parecido com o seu

http://www.mail-archive.com/delphi-br@yaho...r/msg48683.html

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

>queria saber como eu faço uma telinha de status :) tipo, uma memo, que receba mensagens de status.

Consegui, foi simples vou comentar aqui, porque pode ser que ajude outra pessoa,

eu consegui usar a bendita AUTENTIFICAÇÃO do SMTP no delphi 5 com o componente INDY 9.

INDY's: http://www.atozed.com/indy/plus/Files.EN.aspx (o bom é que ele instala automaticamente e pra desinstalar é fácim, como se fosse um programinha comum)

aqui vai meu primeiro e minúsculo aplicativo.

{Configurações IdMessage}

IdMessage1.from.Address := 'k.log@bol.com.br';

IdMessage1.Recipients.EMailAddresses := 'k.log@bol.com.br';

IdMessage1.Subject := 'Assunto';

IdMessage1.Body.Add(Edit1.text);

IdMessage1.Body.Add(Edit2.text);

{Configurações IdPOP}

IdPOP31.Host := 'pop3.bol.com.br';

IdPOP31.Username := 'k.log';

IdPOP31.Password := 'senha01';

IdPOP31.Connect;

{Configurações IdSMTP}

IdSMTP1.Host := 'smtps.bol.com.br';

IdSMTP1.AuthenticationType := aTlogin;

IdSMTP1.Username := 'k.log';

IdSMTP1.Password := 'senha01';

IdSMTP1.Connect;

ShowMessage('Conectado em SMTP');

IdSMTP1.Send(idmessage1);

ShowMessage('MSG enviada!!!');

OBS, não coloquei pra desconectar porque tava dando erro, então como o servidor vai desconectar mesmo, então não é necessário.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...