Fórum Mandar email pelo Gmail com Indy #337475

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.

1
2
3
4
IdSMTP.host => smtp.gmail.com
IdSMTP.Port => 465
IdSMTP.password => ...
IdSMTP.username => ...

1
2
3
4
5
6
7
8
9
10
11
12
// 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

Gostei + 0

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

Gostei + 0

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.

1
2
3
4
5
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.

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



Agradeço desde de ja as ajudas...


Responder

Gostei + 0

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

Gostei + 0

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

Gostei + 0

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

Gostei + 0

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

Gostei + 0

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

Gostei + 0

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...
1
2
3
4
5
6
7
8
9
10
11
12
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

Gostei + 0

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

Gostei + 0

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

Gostei + 0

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

Gostei + 0

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

Gostei + 0

21/02/2007

Pestana_

valeu galera! deu certo,



flw,
Pestana.


Responder

Gostei + 0

15/03/2007

Scotchtriplo

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


Responder

Gostei + 0

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

Aceitar