Ir para conteúdo
Fórum Script Brasil
  • 0

Como Enviar Email Através Do Delphi?


Guest sllc

Pergunta

Olá,

Alguém tem aí alguma rotina em delphi para envio de emails?

Tenho um cadastro com vários nomes e emails em banco de dados interbase e gostaria de fazer um formulário para montar a mensagem a ser enviada, depois seria despachar esta mensagem para cada registro do banco de dados.

Se alguém puder ajudar, desde já agradeço muito.

Obrigado.

Sergio

Link para o comentário
Compartilhar em outros sites

19 respostass a esta questão

Posts Recomendados

  • 0

ENVIANDO EMAIL USANDO O COMPONENTE INDY NO DELPHI7

Veremos neste artigo como é fácil enviar email utilizando o componente Indy presente no delphi 7.

Apresentaremos abaixo uma simples aplicação, basta você ter um pouco de criatividade e dar asas a sua imaginação...

No Delphi crie um novo projeto.

Salve a Unit com o nome UEmail e o projeto como Email.

Utilize os seguintes componentes:

3 Labels:

Altere as propriedades Caption respectivamente para: (Para, Assunto, Mensagem)

2 Edits

Altere as propriedades Name respectivamente para:(edtPara, edtAssunto);

Apague o conteúdo das propriedades Text;

1 ListBox

Altere a propriedade Name para:(lbxAnexos)

1 Componente Memo

Altere a propriedade Name para:(mmMensagem);

Apague o conteúdo da propriedade lines.

3 Componentes Bitbtn

Altere as propriedades Caption respectivamente para:(Anexar,Enviar,Fechar)

Altere as propriedades Name respectivamente para:(btAnexar,btEnviar,btFechar)

Agora insira um componente OpenDialog da palheta Dialogs

Altere a propriedade Name para:(odAnexos)

Insira um componente IdMessage, da palhete Indy Misc

Configure a propriedades From|Address com o email do remetente e From|Name com o

nome do remetente

Altere a propriedade Name para:(IdMessage)

Insira um componente IdSMTP da palheta IndyClients

Configure as propriedades Host com o endereço IP ou o DNS do servidor de email,

por exemplo: smtp.uol.com.br

Configure as propriedades Password e Username, para se autenticar no servidor,

caso seja necessário.

Altere a propriedade name para:(IdSMTP)

Agora vamos aos códigos:

No evento onclick do botão btAnexos:

procedure TForm1.btAnexarClick(Sender: Tobject);
begin
if odAnexos.Execute then
lbxAnexos.Items.Add(odAnexos.FileName);
end;
No evento onclick do botão btFechar:
procedure TForm1.btFecharClick(Sender: Tobject);
begin
Application.Terminate;
end;
No evento onclick do botão btEnviar:
procedure TForm1.btEnviarClick(Sender: TObject);
var Anexo : Integer;
begin
IdMessage.Recipients.EMailAddresses := edtPara.Text;
IdMessage.Subject := edtAssunto.Text;
IdMessage.Body := mmMensagem.Lines;
//Manipulando os Anexos
for Anexo := 0 to lbxAnexos.Items.Count-1 do
TIdAttachment.Create(idmessage.MessageParts, TFileName(lbxAnexos.Items.Strings[Anexo]));

IdSMTP.Connect;
try
IdSMTP.Send(IdMessage);
finally
IdSMTP.Disconnect;
end;
Application.MessageBox('Email enviado com sucesso!', 'Confirmação', 
MB_ICONINFORMATION + MB_OK);
end;

Fonte: Portal

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado, Jonas.

Era isso que eu estava precisando.

Mas, sem querer abusar de sua boa vontade, como faço para enviar cópias para outros emails. Tentei fazer um listbox com outros endereços de email e usar a propriedade CCList do componente idMessage, mas não deu certo. Poderia por obséquio me ajudar mais um pouco?

Obrigado mais uma vez.

Sergio

Link para o comentário
Compartilhar em outros sites

  • 0

No evento onclick do botão btEnviar:

procedure TForm1.btEnviarClick(Sender: TObject);
var Anexo : Integer;
begin
IdMessage.Recipients.EMailAddresses := edtPara.Text;
IdMessage.Subject := edtAssunto.Text;
IdMessage.Body := mmMensagem.Lines;
ou pode usar esta configuração
//Configuração do IdMessage (dados da mensagem)

  IdMessage1.From.Address := 'fulano@bol.com.br';                         //e-mail do remetente
  IdMessage1.Recipients.EMailAddresses := 'sicrano@bol.com.br';      //e-mail do destinatário
  IdMessage1.Subject := 'Assunto do e-mail';                                   //Assunto
  IdMessage1.Body.Add('Mensagem do e-mail');                               //Corpo da mensagem

como mandar para mais de um endereço:

IdMessage1.Recipients.EMailAddresses := 'sicrano@bol.com.br ; fulano@bol.com.br ; beltrano@bol.com.br';

Editado por Jhonas
Link para o comentário
Compartilhar em outros sites

  • 0
Guest Silas Aguiar
No evento onclick do botão btEnviar:

procedure TForm1.btEnviarClick(Sender: TObject);
var Anexo : Integer;
begin
IdMessage.[b]Recipients.[/b]EMailAddresses := edtPara.Text;
IdMessage.Subject := edtAssunto.Text;
IdMessage.Body := mmMensagem.Lines;
ou pode usar esta configuração
//Configuração do IdMessage (dados da mensagem)

  IdMessage1.From.Address := 'fulano@bol.com.br';                         //e-mail do remetente
  IdMessage1.Recipients.EMailAddresses := 'sicrano@bol.com.br';      //e-mail do destinatário
  IdMessage1.Subject := 'Assunto do e-mail';                                   //Assunto
  IdMessage1.Body.Add('Mensagem do e-mail');                               //Corpo da mensagem

como mandar para mais de um endereço:

IdMessage1.Recipients.EMailAddresses := 'sicrano@bol.com.br ; fulano@bol.com.br ; beltrano@bol.com.br';

____________________

Boa tarde, tentei fazer mas deu erro no

IdMessage.Recipients.EMailAddresses := edtPara.Text;

expecificamente no Recipients,

se poderem me ajudar ficarei grato, até...

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde, tentei fazer mas deu erro no

IdMessage.Recipients.EMailAddresses := edtPara.Text;

expecificamente no Recipients,

voce deve colocar o endereço do email

exemplo:

IdMessage.Recipients.EMailAddresses := 'master@bol.com.br'

onde edtPara.Text; é um edit que vai receber o endereço do email

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, eu tenho uma pequna dúvida.... eu vou precisar importar os e-mail que vou utilizar.

esses arquivos serão txt, xls, csv e pdf.

o que eu quero fazer é o seguinte: clico em "Importar Contatos" e escolho o arquivo que contém os e-mails, depois disso crio a mensagem e clico em enviar e a mensagem vai ser enviada para todos os destinatários daquele arquivo.

Mas não estou conseguindo fazer isso. O meu enviar funciona normalmente. Estou no momento tentando importar uma lista em txt para ver se funciona vejam o código abaixo:

If ComboBoxDestinatario.Text = '' Then

Begin

IF OpenDialogImportarContatos.Execute Then

Begin

ListaEmail:= OpenDialogImportarContatos.Files.Text;

ListaTemp.Text := ListaEmail;

IdMessage1.Recipients.Add.Address := ListaTemp.DelimitedText; //ComboBoxDestinatario.Items.Text; //'deblynprado@hotmail.com';

End

Else

IdMessage1.Recipients.Add.Address:=ComboBoxDestinatario.Items.Text;

e tenho o seguite erro: Access violation at adress AC558BFF. Read of address AC558BFF.

o que devo fazer?

Link para o comentário
Compartilhar em outros sites

  • 0
IdMessage1.Recipients.Add.Address:=ComboBoxDestinatario.Items.Text;

e tenho o seguite erro: Access violation at adress AC558BFF. Read of address AC558BFF.

o que devo fazer?

O erro está parecendo que esta no IdMessage1.Recipients.Add.Address

verifique se o seu combobox tem mais de um item .. se tiver, voce deve usar ponto e virgula para separa-los

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

Ih, agora eu não to conseguindo enviar mais nada

procedure TFormFormularioEmail.BitBtEnviarClick(Sender: TObject);

var Anexo : Integer;

begin

IdMessage1.From.Address:= 'meuemail@provedor.com.br;

IdMessage1.From.Name:= 'Teste';

IdMessage1.Recipients.EMailAddresses:= 'email@hotmail.com';

IdMessage1.Subject:= EdAssunto.Text;

IdMessage1.Body:= RIchEdit1.Lines;

IdSMTP1.Host:= 'smtp.temasistemas.com.br';

IdSMTP1.Port:= 25;

IdSMTP1.Username:= 'user@temasistemas.com.br';

IdSMTP1.Password:= 'xxx';

IdSMTP1.Connect(0);

if IdSMTP1.Connected then

begin

IdSMTP1.Send(IdMessage1);

IdSMTP1.Disconnect;

ShowMessage('Email enviado com sucesso!');

end

else

begin

IdSMTP1.Disconnect;

ShowMessage('Não foi possível se conectar com seu servidor de email!');

end;

end;

dá erro de DESTINATARIO não VALIDO/INVALID RECIPIENT

tirei todo o código que tinha antes e coloquei só esse aí e não tá funcionando :P

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Jhonas, já tentei refazer do zero, exclui tudo e refiz mas ainda continuo com o mesmo erro =/

eu estou utilizando o delphi 7 mesmo, mas agora não sei por que cargas d'água não estou conseguindo enviar mais os e-mails e ainda não tenho a mínima ideia de como vou fazer para inserir uma imgem no richedit e importar a lista de contatos.....

Link para o comentário
Compartilhar em outros sites

  • 0

Olá novamente, bom já consegui resolver o problema do programa não estar mais enviando e-mail, mas ainda tenho a dúvida quanto ao fato de anexar uma lista de contatos, será que poderia me ajudar?

Link para o comentário
Compartilhar em outros sites

  • 0

Tentei fazer desta forma, mas o e-mail só é enviado para o 1º usuário da lista, criei um botão para importar, um Memo1 invisivel e o código ficou assim:

If OpenDialogImportarContatos.Execute Then
Memo1.Lines.Text := OpenDialogImportarContatos.Files.Text;
IdMessage1.Recipients.EMailAddresses := Memo1.Lines.Text;

Link para o comentário
Compartilhar em outros sites

  • 0
Erro: Connection closed gracefully

Resposta: Conexão fechada graciosamente

http://translate.google.com/translate?hl=p...Dpt-BR%26sa%3DG

e como faço pararesolver esse "Connection closed gracefully", porque toda vezque ligo meu progrma conecata ao servidor, mas na hora de enviar da esse erro!

O que posso fazer ??

guihgo@hotmail.com

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...