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