Este é o tipo de tarefa simples que eventualmente podem complicar nossas vidas quando não sabemos o “caminho das pedras” para realizá-lo. O envio automático de e-mail é quase um clichê em qualquer aplicação Web, seja para comunicar usuários a respeito de seu cadastro ou monitoramento de outros processos.
Em alguns simples passos verá com é simples. Usaremos os namespaces System.Web.Mail,
que implementa rotinas que usam o CDONTS do Internet Information Server para
transmissão das mensagens e System.IO para operações com o arquivo anexado.
Use esta implementação para transmitir o arquivo:
procedure TWebForm1.btnAnexar_Click(sender: System.Object;
e: System.EventArgs);
var
strFile: string;
begin
strFile := uplAnexo.PostedFile.FileName;
uplAnexo.PostedFile.SaveAs(Server.MapPath('Files/') + Path.GetFileName(strFile));
end;
O uplAnexo é o controle HtmlInputFile usado para seleção e transmissão do
arquivo, o marquei como controle “Run as Server Control”.
Criei um diretório com direito de escrita chamada “Files” para receber os
arquivos anexados.
Para enviar a mensagem, faça assim:
procedure TWebForm1.btnEnviar_Click(sender: System.Object;
e: System.EventArgs);
var
Mail: MailMessage;
Attach: MailAttachment;
begin
Mail := MailMessage.Create;
Attach := MailAttachment.Create(Server.MapPath('Files/' +
Path.GetFileName(‘NomeDoArquivoAnexado.xxx’)));
with Mail do
begin
From := Adilson Jr<adilsonjr@tdstecnologia.com.br>;
&To :=
‘email@destino.com.br’;
Subject := ‘Assunto do Email’;
Body := ‘Corpo da Mensagem’;
Attachments.Add(Attach)
end;
SmtpMail.SmtpServer := 'ServidorSmtp'; //por exemplo, smtp.uol.com.br
SmtpMail.Send(Mail);
end;
Simples assim :-)
Adilson Jr
adilsonjr@tdstecnologia.com.br
Diretor Técnico da TDS Tecnologia Rio de Janeiro, certificado em Borland
Developer Studio 2006, StarTeam e CaliberRM. Atua na área de análise e
desenvolvimento em Delphi a 10 anos. Atualmente trabalha com treinamentos,
consultoria e desenvolvimento de soluções para as plataformas Win32 e .NET, ASP.NET,
MDA/Enterprise Core Objects, RM e SCM.
|