Mandar email pelo Gmail com Indy
07/02/2007
0
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
Posts
07/02/2007
Rjun
07/02/2007
Emerson Nascimento
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]
07/02/2007
Laelsonc
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...
07/02/2007
Massuda
07/02/2007
Corcos
Corpo do email
final
07/02/2007
Corcos
coloca um memo e a propriedade OnStatus do componente TidSMTP coloque
assim vc consegue visualizar o que esta passando
08/02/2007
Laelsonc
[url]http://indy.fulgan.com/ZIP/[/url]
Vou tentar agora com o Indy 9.0.0.18.
08/02/2007
Laelsonc
08/02/2007
Massuda
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); ...
08/02/2007
Pestana_
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.
08/02/2007
Laelsonc
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.
08/02/2007
Pestana_
valeu amigão, vou dar uma estudada no fonte agora.
abraços,
Pestana.
08/02/2007
Corcos
// 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