Bom dia pessoal,
Tive um problema com o envio do outlookexpress e com o novo tambem na questão de anexos e decidi correr atrás mais pro lado do thunderbird, foi meio chato , mas consegui fazer funcionar, e pelo o que sei , a procedure abaixo funcionara com qualquer cliente de email, desde que ele esteja como padrão do sistema operacional.
Vocês vão precisar :
-Componentes Jedi.
-Unit JclMapi.
Passos:
1 - Criar uma aplicacação nova.
2 - Inserir um button na mesma.
3 - Declarar na secao uses a unit JclMapi.
4 - Declarar a função
procedure EnviarEmailPadrao(sListaEmail:TStringList;sListaAnexos:TStringList;sAssunto:string;sTextoEmail:string);
Acima da seção private.
5 - Implementar ela :
procedure TForm1.EnviarEmailPadrao(sListaEmail:TStringList;sListaAnexos:TStringList;sAssunto:string;sTextoEmail:string);
var TmpEmail: TjclEmail;
var i:integer;
begin
TmpEmail := TjclEmail.Create;
//Adicionando Emailas
for I := 0 to sListaEmail.Count-1 do
TmpEmail.Recipients.Add(sListaEmail[i]);
//Adicionando Anexos
for I := 0 to sListaAnexos.Count-1 do
TmpEmail.Attachments.Add(sListaAnexos[i]);
TmpEmail.Subject := sAssunto;
TmpEmail.Body := sTextoEmail;
TmpEmail.Send(True);
end;
6 - O evento onClick do Button deverá ficar assim:
procedure TForm1.btn1Click(Sender: TObject);
var sListaEmail:TStringList;
var slistaAnexos:TStringList;
var sAssunto,sTextoEmail:string;
begin
//Cria as 2 String List pois a procedure EnviaEmail varre as stringlist em busca de email's e anexos.
sListaEmail := TStringList.Create();
slistaAnexos := TStringList.Create();
//Populando a lista de emails
sListaEmail.Clear();
sListaEmail.Add('gustavo@taltal.com.br');
sListaEmail.Add('outro@taltal.com.br');
//Populando a lista de anexos
slistaAnexos.Clear();
slistaAnexos.Add('C:\Temp\gustavo.txt');
slistaAnexos.Add('C:\Temp\gustavo.sql');
//Adicionando o Assunto a email
sAssunto := 'Teste de Email';
//Adicionando o Texto do email
sTextoEmail := 'Programa para envio de email padrao para sistemas que tenham algum programa de email padrao instalado.';
//Enviando o Email pela Procedure
EnviarEmailPadrao(sListaEmail,slistaAnexos,sAssunto,sTextoEmail);
Pronto Galera!
O que ele faz?
Voce vai adicionar tantos seus destinatarios de emails, quanto seus anexos de email , em 2 stringList, adicionar o assunto e o texto do email e enviá-los para a procedure, o trabalho sujo, ela faz... hahaha!
Obs :
-Testei somente com o thunderbird, mas deverá funcionar com qualquer cliente que esteja como PADRÃO no SO.
- Compilado pelo Delphi Xe2.
- Cliente de Email padrão : Thunderbird v. 10.0.1, released: February 12th, 2012.
DOWNLOAD EXEMPLO AQUI
6 comentários:
Não funciona com outlook 2010
Ja debugou para verificar onde esta o erro ? Para mim funcionou no 2010.
Ola amigo , estou começando a estudar o delphi e vi que vc mexe com isso e gostaria que você me informasse onde consigo a melhor versão pra começar e que me desse algumas dicas , agradeço mesmo sua resposta , meu e-mail é jovaneguedes@hotmail.com ok abraços
Boa tarde. Não funciona com thundrbird sem o office instalado, teria alguma idéia do que poderia fazer?
Boa Tarde,
Estranho mesmo não funcionar , da algum erro ?
Testou para ver pelo debug o que ocorre ?
Show! pra mim funcionou perfeitamente MSOutlook2007 - Delphi 6 e o componente peguei aqui --> http://sourceforge.net/projects/jvcl/
obg!
Postar um comentário