Mandar email pelo Gmail com Indy

07/02/2007

0

Ai pessoal, estou com uma duvida, acho que estou deixando algo sem configurar, to usando os Componentes Indy q qrendo enviar um email pelo o Gmail.

IdSMTP.host => smtp.gmail.com
IdSMTP.Port => 465
IdSMTP.password => ...
IdSMTP.username => ...

// NO botao 
  IdMessage.Recipients.EMailAddresses := edtPara.Text;
  IdMessage.Subject := edtAssunto.Text;
  IdMessage.Body := mmMensagem.Lines;
  IdSMTP.Connect;

if IdSMTP.Connected then begin
IdSMTP.Send(IdMessage);
showmessage(´Email Enviado com Sucesso !´);

IdSMTP.Disconnect;
end;



Laelsonc

Laelsonc

Responder

Posts

07/02/2007

Rjun

Qual o problema que você esta tendo? Qual versão do Indy você está usando?


Responder

07/02/2007

Emerson Nascimento

instancie um componente [b:7412b67ab0]IdSSLIOHandlerSocket[/b:7412b67ab0] da palleta [b:7412b67ab0]Indy IO Handlers[/b:7412b67ab0]

ligue a propriedade IOHandler do componente IdSMTP ao componente IdSSLIOHandlerSocket recém criado.

IdSMTP1.AuthenticationType := atLogin;
IdSMTP1.Host := ´smtp.gmail.com´;
IdSMTP1.Port := 465;
IdSMTP1.Username := ´seulogin@gmail.com´;
IdSMTP1.Password := ´suasenha´;

IdSMTP.Connect(3000);

antes de executar seu programa, será necessário baixar uma biblioteca OpenSSL e extrair os arquivos na pasta do exe ou na pasta do windows (numa pasta que esteja no caminho de busca).
eu baixei a [url=http://indy.fulgan.com/SSL/indy_OpenSSL096m.zip]indy_OpenSSL096m[/url] em [url]http://indy.fulgan.com/SSL/[/url]


Responder

07/02/2007

Laelsonc

Depois de muito tentar com o Gmail, nao consegui ao menos conectar, pois dava um erro de de carregamento de Dll das que eu baixei no link do Emerson, eu fui pra um outro servidor de emails.

IdSMTP.Host := ´mail.itnet.com.br´;
IdSMTP.Port := 25;

IdSMTP.Username := ´laelsonc@itnet.com.br´;
IdSMTP.Password := ´...´;


Esse ao menos conecta. Mas na hora de enviar o IdMessage passa um tempao, e depois manda uma mensagem dizendo ´authentication failed´
...na to entendendo onde essa falha de autenticacao. A porta esta correta,
eu uso no outlook a mesma.

Eu estou usando o Indy 10, e nao consegui colocar esse paramentro ai
no Connect emerson, acho que a versao nao suporta mais.

IdSMTP1.AuthenticationType := atLogin;
Connect(3000);



Agradeço desde de ja as ajudas...


Responder

07/02/2007

Massuda

Informe qual versão do Indy você está usando ou se estiver usando o Indy que veio com o Delphi, informe qual versão do seu Delphi.


Responder

07/02/2007

Corcos

Uso a versão 9 e funciona certinho, tive uns problemas com o Gmail e preferi utilizar o yahoo que passei a não ter mais problemas

IdSMTP.Host:=´smtp.mail.yahoo.com.br´; IdSMTP.Port:= 25; //IdSMTP.AuthenticationType := atLogin; //caso precise autenticar IdSMTP.Username := ´teste´; IdSMTP.Password := ´123456´; IdMessage.Clear; IdMessage.From.Text :=´teste@seudominio.com.br´; //conta que irá aparecer idMessage.Recipients.EMailAddresses := ´email@email.com´; //email destino IdMessage.CCList.EMailAddresses := ´comcopia@email.com.br´; //com copia

Corpo do email

final
IdSMTP.Connect; try IdSMTP.Send(IdMessage); finally IdSMTP.Disconnect; end; Application.MessageBox(´Email enviado com sucesso!´, ´Confirmação´, MB_ICONINFORMATION + MB_OK);



Responder

07/02/2007

Corcos

Esqueci de falar uma coisa é interessate fazer para testes

coloca um memo e a propriedade OnStatus do componente TidSMTP coloque
Memo.Lines.Add(AStatusText);


assim vc consegue visualizar o que esta passando


Responder

08/02/2007

Laelsonc

Delphi 7 com Indy 10 que peguei nesse endereço -
[url]http://indy.fulgan.com/ZIP/[/url]

Vou tentar agora com o Indy 9.0.0.18.


Responder

08/02/2007

Laelsonc

Galera...eu mudei pra versao que 9.0.0.18 e funcionou blz. Nao vou mais esquentar a cabeça com a Versao 10. Valeu muito Obrigado amigos !


Responder

08/02/2007

Massuda

A dica do emerson funciona com Indy9. Com Indy10, que eu saiba (nunca usei), as DLLs necessárias são as DLLs padrão do projeto OpenSSL ( http://www.openssl.org ); não use as que tem no FTP fulgam.com pois essas DLLs são modificadas para funcionar com Indy9.

Seu código deveria ser algo assim...
IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL; 
IdSMTP1.Host := ´smtp.gmail.com´; 
IdSMTP1.Port := 465; 
IdSMTP1.UseTLS := utUseExplicitTLS;

IdSMTP1.AuthType := atDefault; 
IdSMTP1.Username := ´seu.username´; 
IdSMTP1.Password := ´sua.senha´; 

IdSMTP1.Connect; 
IdSMTP1.Send(IdMessage1); 
...
Não me lembro, mas talvez tenha que ativar o acesso ao servidor POP3 na sua conta GMail.


Responder

08/02/2007

Pestana_

Corcos a uns tempos atras eu estavá tentando enviar e-mail através do delphi, mas eu não consegui estavá dando erro, eu tambem fiz diferente do que você fez, deve ser esse o motivo rsrsrsrs.

tem como você esplicar pra mim como você fez para que eu possa a retornar ao processo de enviar e-mail pelo o delphi ou se alguem poder me ajudar e agradeço.

D7.


abraços,
flw.


Responder

08/02/2007

Laelsonc

Ola Pestana... pegue ai o exemplo que eu fiz para o Gmail. Com a ajuda dos meus amigos ai esta funcionando blz!
A versao do Indy é a que falei acima. 9.0.0.18
[url]http://www.grupokariri.com.br/download/EmailIndy.rar[/url]

Vou desenvolver agora para enviar formatado em HTML.
Ate mais.


Responder

08/02/2007

Pestana_

Ola Pestana... pegue ai o exemplo que eu fiz para o Gmail. Com a ajuda dos meus amigos ai esta funcionando blz! A versao do Indy é a que falei acima. 9.0.0.18 [url]http://www.grupokariri.com.br/download/EmailIndy.rar[/url] Vou desenvolver agora para enviar formatado em HTML. Ate mais.


valeu amigão, vou dar uma estudada no fonte agora.

abraços,
Pestana.


Responder

08/02/2007

Corcos

O meu botão de enviar e-mail em html, é um sistema de cadastro de atendimento


// ENVIO DE E-MAIL

IdSMTP.Host:=´smtp.mail.yahoo.com.br´;
IdSMTP.Port:= 25;
//IdSMTP.AuthenticationType := atLogin; //caso precise autenticar
IdSMTP.Username := ´login´;
IdSMTP.Password := ´senha´;

IdMessage.Clear;
IdMessage.From.Text :=´informatica@provedor.com.br´;
idMessage.Recipients.EMailAddresses := frmCadAtend.QryCadAtendimento.FieldByName(´EMAIL´).AsString;
IdMessage.CCList.EMailAddresses := ´chamado@provedor.com.br´;
//IdMessage.BccList.EMailAddresses := ´´; //edtCCO.Text; so se precisar
IdMessage.Subject := ´Atendimento número: ´+frmCadAtend.QryCadAtendimento.FieldByName(´IDCADATENDIMENTO´).AsString;

// tratamento do corpo da mensagem
IdMessage.ContentType := ´text/html´;
IdMessage.Body.Add(´<html><body>´);

IdMessage.Body.Add(´Data do chamado: ´+edtData.Text+ ´
´);
IdMessage.Body.Add(´Hora do chamado: ´+edtHora.Text+ ´
´);
//

IdMessage.Body.Add(´Hotel: ´+frmCadAtend.QryCadAtendimento.FieldByName(´HOTEL´).AsString+ ´
´);
IdMessage.Body.Add(´Funcionário: ´+frmCadAtend.QryCadAtendimento.FieldByName(´FUNCIONARIO´).AsString+ ´
´);
IdMessage.Body.Add(´Setor: ´+frmCadAtend.QryCadAtendimento.FieldByName(´SETOR´).AsString+´

´);
//

IdMessage.Body.Add(´Tipo de atendimento: ´+frmCadAtend.QryCadAtendimento.FieldByName(´TIPOATENDIMENTO´).AsString+´
´);
//

IdMessage.Body.Add(´
Descrição do problema: ´+frmCadAtend.QryCadAtendimento.FieldByName(´PROBPASSADO´).AsString+´
´);

if (frmCadAtend.QryCadAtendimento.FieldByName(´PENDENTE´).AsString = ´T´) then
begin
IdMessage.Body.Add(´Pendente: Sim
´);
IdMessage.Body.Add(´Prioridade de atendimento: ´+frmCadAtend.QryCadAtendimento.FieldByName(´PRIORIDADE´).AsString+´

´);
end;
if (frmCadAtend.QryCadAtendimento.FieldByName(´PENDENTE´).AsString = ´F´) then
begin
IdMessage.Body.Add(´Pendente: Não
´);
IdMessage.Body.Add(´Prioridade de atendimento: ´+frmCadAtend.QryCadAtendimento.FieldByName(´PRIORIDADE´).AsString+´

´);
//

IdMessage.Body.Add(´Problema apresentado: ´+frmCadAtend.QryCadAtendimento.FieldByName(´PROBAPRESENTADO´).AsString+´
´);
IdMessage.Body.Add(´Causa do problema: ´+frmCadAtend.QryCadAtendimento.FieldByName(´RESOLVPROBLEMA´).AsString+´
´);
end;
if (frmCadAtend.QryCadAtendimento.FieldByName(´FINALIZADO´).AsString = ´T´) then
IdMessage.Body.Add(´Finalizado: Sim
´)
else
IdMessage.Body.Add(´Finalizado: Não
´);
//

IdMessage.Body.Add(´Chamado aberto por: ´+frmCadAtend.QryCadAtendimento.FieldByName(´ATENDENTE´).AsString+´



´);
//

IdMessage.Body.Add(´Desenvolvido por: xxxxxxxxxxx
´);
IdMessage.Body.Add(´´+frmSobre.lblVersao.Caption+´



</body></html>´);


IdSMTP.Connect;
try
IdSMTP.Send(IdMessage);
finally
IdSMTP.Disconnect;
end;
Application.MessageBox(´Email enviado com sucesso!´, ´Confirmação´, MB_ICONINFORMATION + MB_OK);
// FIM ENVIO DE E-MAIL
end



Responder

21/02/2007

Pestana_

valeu galera! deu certo,



flw,
Pestana.


Responder

15/03/2007

Scotchtriplo

Boa tarde, gostaria da ajuda de vcs pra enviar e-mail pelo Delphi 2006.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar