TIdMessage e TIdEMailAddressList
Ola, estou tentando desenvolver uma aplicacao que faca o envio de email mas so encontrei o componente TIdMessage, onde posso encontrar o componente TIdEMailAddressList? Qual a versao do Delphi?
Obrigado.
Obrigado.
Ricardopinheiro
Curtidas 0
Respostas
Massuda
12/07/2005
O objeto que você citou é criado e usado internamente pelo TIdMessage, não precisa ser criado separadamente.
Talvez isso ajude você: este é o esquema básico de envio de email usando os componentes Indy...Dependendo do servidor de SMTP que você estiver usando, pode haver necessidade de incluir mais código para que o envio de mensagem funcione.
Talvez isso ajude você: este é o esquema básico de envio de email usando os componentes Indy...
... // monte sua mensagem usando um TIdMessage IdMessage1.Recipients.Add(´alguem@example.com´); IdMessage1.Subject := ´Assunto´; IdMessage1.Body.Add(´Texto da mensagem´); // nome do seu servidor SMTP IdSMTP1.Host := ´smtp.example.com´; // alguns servidores SMTP requerem login outros não //IdSMTP1.AuthenticationType := atLogin; //IdSMTP1.Username := ´nome.de.usuario´ //IdSMTP1.Password := ´senha.secreta´; // conecta com o servidor IdSMTP1.Connect; try IdSMTP1.Send(IdMessage1); finally IdSMTP1.Disconnect; end; ...
GOSTEI 0
Ricardopinheiro
12/07/2005
Sua ajuda valeu MUITO, mas a linha IdMessage1.Recipients.Add(´alguem@example.com´); nao funcionou. Resolvi usando IdMessage.Recipients.EMailAddresses := ´rrp@rhodes.com.br´;
Faltou ainda como identificar o remetente. Mas agora apareceu um outro problema: o programa funcionou corretamente, mas a mensagem nao foi enviada, ja verifique o anti-spam e o boxtrapper da minha caixa de mensagem e nada :cry: ... ou sera que foi enviada e ta perdida por ai? Alguem achou? :P
Faltou ainda como identificar o remetente. Mas agora apareceu um outro problema: o programa funcionou corretamente, mas a mensagem nao foi enviada, ja verifique o anti-spam e o boxtrapper da minha caixa de mensagem e nada :cry: ... ou sera que foi enviada e ta perdida por ai? Alguem achou? :P
GOSTEI 0
Massuda
12/07/2005
...a mensagem nao foi enviada...
Isso pode ter várias causas:[list:cdf57bf060][*:cdf57bf060]Seu servidor de SMTP requer que você faça login? Nesse caso, você precisa do código que está comentado no exemplo que postei.[*:cdf57bf060]Seu servidor de SMTP pode requerer que você conecte primeiro no servidor POP3 e permaneça conectado (no servidor POP3) até terminar de usar o servidor SMTP; o código exemplo ficaria assim...... // monte sua mensagem usando um TIdMessage ... // nome do seu servidor POP3 IdPOP31.Host := ´pop.example.com´; IdPOP31.Username := ´nome.de.usuario´ IdPOP31.Password := ´senha.secreta´; IdPOP31.Connect; // nome do seu servidor SMTP IdSMTP1.Host := ... ... IdSMTP1.Disconnect; end; IdPOP31.Disconnect;
GOSTEI 0
Guilherme
12/07/2005
massuda criei um sistema que esta igual no seu so q quando envio uma mensagen com anexo de +- 1 mb a aplicaçao tipo fica travada mais nao esta travada si deixa ela quetinha ela termina de envia e volta ao normal vc sabe como corrigir isso ??? e tem como colocar progress nessa rotina ?????
valew
valew
GOSTEI 0
Massuda
12/07/2005
...quando envio uma mensagen com anexo de +- 1 mb a aplicaçao tipo fica travada mais nao esta travada si deixa ela quetinha ela termina de envia e volta ao normal...
O método IdSMTP1.Send só retorna depois de enviar a mensagem (no seu caso, +/- 1 mega). Melhora um pouco se você colocar no form onde tem o IdSMTP um TIdAntiFreeze (aba Indy Misc), mas não resolve totalmente.e tem como colocar progress nessa rotina ?
Sei que tem, mas eu nunca fiz isso, não sei como faz.GOSTEI 0
Aspirante
12/07/2005
Ressucitando este tópico para uma ajuda.
Coloquei todos os códigos. O programa compilou tranquilo.
As partes mais principais da conexão coloquei assim:
...
Tentei também com pop/smtp.mail.google.com
Na verdade não sei qual é o host do gmail.
Bom. Quando ele vai enviar o e-mail o meu AVG Email Scanner (do AVG AntiVirus) é executado na barra de tarefas, como se mostrando aquela caixinha pop-up do messenger quando chega uma nova mensagem. Ele começa a varrer eu acho o email pop. Aí depois dá uma mensagem no delphi de erro:
EIdProtocolReplyError
´-ERR AVG POP3 Proxy Server: Cannot Connect to the email server!´
Alguém sabe o host do google e o porque do erro?
Também aproveitando, usando o meu GMail no sistema, dá pra enviar email de qualquer computador/cliente?
Coloquei todos os códigos. O programa compilou tranquilo.
As partes mais principais da conexão coloquei assim:
IdPOP31.Host := ´pop.gmail.com´;
...
IdSMTP1.Host := ´smtp.gmail.com´;
Tentei também com pop/smtp.mail.google.com
Na verdade não sei qual é o host do gmail.
Bom. Quando ele vai enviar o e-mail o meu AVG Email Scanner (do AVG AntiVirus) é executado na barra de tarefas, como se mostrando aquela caixinha pop-up do messenger quando chega uma nova mensagem. Ele começa a varrer eu acho o email pop. Aí depois dá uma mensagem no delphi de erro:
EIdProtocolReplyError
´-ERR AVG POP3 Proxy Server: Cannot Connect to the email server!´
Alguém sabe o host do google e o porque do erro?
Também aproveitando, usando o meu GMail no sistema, dá pra enviar email de qualquer computador/cliente?
GOSTEI 0
Massuda
12/07/2005
Esses componentes só funcionam com o GMail se você fizer algumas coisas a mais. Pesquise aqui no fórum por GMail que você deve encontrar alguns tópicos sobre como usar Indy com GMail. Eu nunca precisei fazer isso, por isso não tenho idéia de como fazer isso.
GOSTEI 0
Aspirante
12/07/2005
Mas amigo, olha, antes de responder este tópico eu procurei um monte sobre gmail + indy, gmail, enfim. Nada achei. Tanto procurei que achei este tópico antigo e o ressuscitei.
Bom, não consegui achar nada, mas se alguém puder me ajudar, por favor...
Obrigado.
Bom, não consegui achar nada, mas se alguém puder me ajudar, por favor...
Obrigado.
GOSTEI 0
Massuda
12/07/2005
GMail usa SSL (conexão segura)... o básico seria [url=http://forum.clubedelphi.net/viewtopic.php?t=60778]instalar o suporte a SSL no Indy[/url] mas como escrevi no meu post anterior, não sei dos detalhes para conectar com o GMail; a princípio, basta ter o suporte a SSL e informar as portas usadas pelos servidores do GMail (que não são as portas padrão).
GOSTEI 0
Aspirante
12/07/2005
Uhm, então é melhor que eu faça com o Yahoo né.
Poderia me passar as portas, host, tudo o mais do yahoo?
Obrigado.
Poderia me passar as portas, host, tudo o mais do yahoo?
Obrigado.
GOSTEI 0
Massuda
12/07/2005
Peloque me lembro, as portas são as portas padrão que já vem ajustadas nos componentes. Quanto aos outros detalhes (servidores, username, senha) você obtem isso no link Opções na página do webmail deles (você precisa estar logado no Yahoo).
GOSTEI 0
Aspirante
12/07/2005
Olha fiz esse código aí mudando claro as opções de usuário e senha. Mas quando tento enviar o email, apesar de dá certo, ou seja, nenhuma mesagem de erro, o email não chega a caixa de entrada. Nem em spam, nem em nada.
O que será qeu é??
O que será qeu é??
begin IdPOP31.Host := ´pop.mail.yahoo.com.br´; IdPOP31.UserId := ´usuario´; IdPOP31.Password := ´senha´; IdPOP31.Connect; // nome do seu servidor SMTP IdSMTP1.Host := ´smtp.mail.yahoo.com.br´; IdSMTP1.Disconnect; //////////////////////////////////////////////////////////// IdMessage1.Recipients.EMailAddresses := Edit2.Text; IdMessage1.Subject := Combobox1.Text; IdMessage1.Body := Memo1.Lines; // nome do seu servidor SMTP IdSMTP1.Host := ´smtp.mail.yahoo.com.br´; // alguns servidores SMTP requerem login outros não IdSMTP1.AuthenticationType := atLogin; IdSMTP1.UserId := ´usuario; IdSMTP1.Password := ´senha´; // conecta com o servidor IdSMTP1.Connect; try IdSMTP1.Send(IdMessage1); finally IdSMTP1.Disconnect; end; IdPOP31.Disconnect; end;
GOSTEI 0
Massuda
12/07/2005
Existem vários motivos para um email não chegar no destino.
Primeiro, eu mudaria parte do seu código para...Fora isso, acho que está faltando o remetente da mensagem (alguns servidores classificam isso como spam). Falando em spam, existem vários tópicos aqui no fórum sobre Indy e spam; pesquise aqui o fórum por IdSMTP1 e SPAM que você deve encontrar esses tópicos.
Primeiro, eu mudaria parte do seu código para...
... IdSMTP1.Connect; try IdSMTP1.Send(IdMessage1); except on E: Exception do MessageDlg(E.Message, mtError, [mbOK], 0); end; IdSMTP1.Disconnect; ...
GOSTEI 0
Luizito
12/07/2005
Alguém sabe porque o IdSMTP do Indy 10 sempre retorna 0 (zero) no envio de email para AWorkCountMax ??
Não deveria retoprnar o tamanho o IdMessage ????
Um abraço...
Não deveria retoprnar o tamanho o IdMessage ????
IdSMTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Integer);
Um abraço...
GOSTEI 0