Email direto do delphi
Amigos,
Tenho pouca experiencia em delphi, e deparei com a seguinte colocação: é possível com delphi 5 criar um formulário e após preenche-lo enviar os dados para um e-mail diretamente em delphi?
Se sim, ficaria grato se alguem indicasse um local onde acho algum exemplo ou uma dica.
Tenho pouca experiencia em delphi, e deparei com a seguinte colocação: é possível com delphi 5 criar um formulário e após preenche-lo enviar os dados para um e-mail diretamente em delphi?
Se sim, ficaria grato se alguem indicasse um local onde acho algum exemplo ou uma dica.
Ant.neto
Curtidas 0
Respostas
Fabio.hc
22/01/2004
1. Coloque um componente TNMSMTP (paleta FastNet) no form
2. Coloque um botão e no evento OnClick deste botão escreva:
procedure TForm1.Button1Click(Sender: TObject);
begin
{ Seu servidor SMTP }
NMSMTP1.Host := ´smtp.servidor.com.br´;
{ Porta SMTP, **NÃO MUDE ISTO** }
NMSMTP1.Port := 25;
{ Nome de login do usuário }
NMSMTP1.UserID := ´MeuLogin´;
{ Conecta ao servidor }
NMSMTP1.Connect;
{ Se ocorrer algum erro durante a conexão com o servidor, avise! }
if not NMSMTP1.Connected then
raise Exception.Create(´Erro de conexão´);
with NMSMTP1.PostMessage do begin
{ Seu e-mail }
FromAddress := ´meuemail@meuserver.com.br´;
{ Seu nome }
FromName := ´Meu Nome´;
{ E-mail do destinatário }
ToAddress.Clear;
ToAddress.Add(´destinatario@servidor.com.br´);
{ Assunto da mensagem }
Subject := ´Assunto da mensagem´;
{ Corpo da mensagem }
Body.Clear;
Body.Add(´Primeira linha da mensagem´);
Body.Add(´Segunda linha da mensagem´);
Body.Add(´´); { Linha em branco }
Body.Add(´Última linha da mensagem´);
{ Anexar arquivos(Se não quiser anexar arquivos, apague as 3 linhas seguintes) }
Attachments.Clear;
{ Endereço do anexo }
Attachments.Add(´c:\diretorio\arquivo.ext´);
end;
{ Manda o e-mail }
NMSMTP1.SendMail;
{ Disconecta do servidor }
NMSMTP1.Disconnect;
end;
2. Coloque um botão e no evento OnClick deste botão escreva:
procedure TForm1.Button1Click(Sender: TObject);
begin
{ Seu servidor SMTP }
NMSMTP1.Host := ´smtp.servidor.com.br´;
{ Porta SMTP, **NÃO MUDE ISTO** }
NMSMTP1.Port := 25;
{ Nome de login do usuário }
NMSMTP1.UserID := ´MeuLogin´;
{ Conecta ao servidor }
NMSMTP1.Connect;
{ Se ocorrer algum erro durante a conexão com o servidor, avise! }
if not NMSMTP1.Connected then
raise Exception.Create(´Erro de conexão´);
with NMSMTP1.PostMessage do begin
{ Seu e-mail }
FromAddress := ´meuemail@meuserver.com.br´;
{ Seu nome }
FromName := ´Meu Nome´;
{ E-mail do destinatário }
ToAddress.Clear;
ToAddress.Add(´destinatario@servidor.com.br´);
{ Assunto da mensagem }
Subject := ´Assunto da mensagem´;
{ Corpo da mensagem }
Body.Clear;
Body.Add(´Primeira linha da mensagem´);
Body.Add(´Segunda linha da mensagem´);
Body.Add(´´); { Linha em branco }
Body.Add(´Última linha da mensagem´);
{ Anexar arquivos(Se não quiser anexar arquivos, apague as 3 linhas seguintes) }
Attachments.Clear;
{ Endereço do anexo }
Attachments.Add(´c:\diretorio\arquivo.ext´);
end;
{ Manda o e-mail }
NMSMTP1.SendMail;
{ Disconecta do servidor }
NMSMTP1.Disconnect;
end;
GOSTEI 0
Ant.neto
22/01/2004
1. Coloque um componente TNMSMTP (paleta FastNet) no form
Caro Fábio, obrigado pela ajuda, sua instrução é bem compreensíve, mas se eu quiser enviar os edits do form... ficaria assim:
Body.Add(´Nome:´ + edit1.txt); ou coisa parecida..
como fica?
Obrigado novamente.
{ Corpo da mensagem }
Body.Clear;
Body.Add(´Primeira linha da mensagem´);
Body.Add(´Segunda linha da mensagem´);
Body.Add(´´); { Linha em branco }
Body.Add(´Última linha da mensagem´);
{ Anexar arquivos(Se não quiser anexar arquivos, apague as 3 linhas seguintes) }
Attachments.Clear;
{ Endereço do anexo }
Attachments.Add(´c:\diretorio\arquivo.ext´);
end;
{ Manda o e-mail }
NMSMTP1.SendMail;
{ Disconecta do servidor }
NMSMTP1.Disconnect;
end;
GOSTEI 0
Otto
22/01/2004
pra melhorar seu sistema, vc tb pode tenta o seguinte,
na hora de enviar, faça isso:
qualquer coisa, manda um post ae...
na hora de enviar, faça isso:
try NMSMTP1.SendMail; except ShowMessage(´mensagem de erro qualquer´); end; //try
qualquer coisa, manda um post ae...
GOSTEI 0
Nigro
22/01/2004
Se você usa o D6, você tem ai alguns exemplos de como trabalhar com a Paleta Indy, que na minha opinião é mais rápida em se tratando de acesso discado, mas se você trabalha com D7, esses exemplos deverão ser baixados.
GOSTEI 0