Bom pessoal este artigo mostrará como podemos incluir em nossas aplicações a opção de envio de email com anexo utilizando os componentes da JEDI (JVMAIL) e o auxílio do Outlook...
Para isso devemos ter instalado os componentes da JEDI e Outlook!
Para começar, devemos criar um novo projeto no Delphi. File -> New -> VCL Projects e deveremos incluir os seguintes componentes:

3 Edits;
1 Memo;
3 Labels;
1 Bitbtn;
1 SpeedButon;
1 OpenDialog;  

Depois devemos alterar os seus respectivos nomes para:
Para os 3 edits -> EdtAssunto, EdtEndereco, EdtNomeFile
Para o Memo -> MemoCorpoEmail;
Para o Bitbtn - > btnEnviar;
Para o SpeedButon -> BtnAnexo;

Nosso formulário deve ficar com essa aparência aqui:


No evento Onclick do nosso btnAnexo devemos incluir o seguinte código:


procedure TForm1.btnAnexoClick(Sender: TObject);

begin

 OpenDialog1.Execute;

 EdtNomeFile.Text := OpenDialog1.FileName;

end;

 

No evento Onclick do nosso BtnEnviar devemos incluir o seguinte código:


procedure TForm1.btnEnviarClick(Sender: TObject);

begin

 JvMail1.Attachment.Clear;

 JvMail1.Attachment.Add(EdtNomeFile.Text); // Anexando  //Arquivo

 JvMail1.Subject := EdtAssunto.Text; // Incluindo assunto a nosso email

 JvMail1.Recipient.Clear; //Limpando o recipiente para //receber o email

 JvMail1.Recipient.AddRecipient(EdtEndereco.Text); //Incluindo o nosso

//destinatario

 JvMail1.body.clear;

 JvMail1.Body.Text := MemoCorpoEmail.Text; // escrevendo nosso email

 JvMail1.SendMail(true); // Enviando..

end;

 

Devemos criar uma função para validar o email! Declare a função abaixo:


function ValidarEMail(aStr: string): Boolean;

begin

 aStr := Trim(UpperCase(aStr));

 if Pos('@', aStr) > 1 then

 begin

  Delete(aStr, 1, pos('@', aStr));

  Result := (Length(aStr) > 0) and (Pos('.', aStr) > 2);

 end

 else

  Result := False;

end;

 

E para finalizar insira o seguinte código no evento OnExit do nosso EdtEndereco:

procedure TForm1.EdtEnderecoExit(Sender: TObject);

begin

 if not ValidarEMail(EdtEndereco.Text) then

 begin

  ShowMessage('E-mail inválido!');

  EdtEndereco.SetFocus;

  EdtEndereco.Text := ''

 end

 else

  MemoCorpoEmail.SetFocus;

end;

Neste código acima estamos validando se o email informado é válido... Se caso não for o sistema irá informar voltando o foco ao componente!

 

É isso aí pessoal espero que tenham gostado dessa maneira de enviar email utilizando os componentes da Jedi... Até o nosso artigo!


Thiago

Contato: Thiagodarley@hotmail.com