Sempre foi algo muito trabalhoso, mas existe um jeito simples e rápido de fazer esse processo.
Para darmos continuidade, é necessário ter instalado o Pacote Microsoft Office 2003, 2007, 2010 ou superior. Devido as mudanças de versões possa ter alguma diferença nos comandos, mas o processo é necessariamente o mesmo para todos.
Para realizar esse processo estou utilizando o Delphi 7 e o Office 2010.
Com o Delphi aberto é necessário efetuar a importação da biblioteca do Office em si em uso para o me
Segui processo.: Project - Import Type Library - Selecione .: Microsoft Outlook 14.0 Object Library (Version 9.4).
Obs. Note Microsoft Outlook 14.0 pois estou utilizando Office 2010, caso seja inferior ou superior poderá ser alterado.
Apos isto clique em CREATE UNIT - salve como Outlook_TLB.
Logo abaixo Código:
var OutlookApp: TOutlookApplication;
email : MailItem;
I : Integer;
begin
OutlookApp := OutlookApplication.Create(Nil);
email := OutlookApp.CreateItem(olMailItem) As MailItem;
email.Subject := ''+EdtAssunto.Text;
email.BodyFormat := olFormatHTML;
email.HTMLBody := ''+MemMensagem.Text;
email.HTMLBody := email.HTMLBody + '<br /><html><body><hr>';
email.HTMLBody := email.HTMLBody + '<font face="Perpetua" size=2>';
email.HTMLBody := email.HTMLBody + ''+MENSAGEM PROGRAMAVEL; //AQUI PODE SER PASSADO POR PARAMETRO A MENSAGEM DO RODAPE QUE O CLIENTE QUEIRA INCLUIR NO EMAIL
email.HTMLBody := email.HTMLBody + '<hr size=1 noshade>';
email.HTMLBody := email.HTMLBody + '</body></html>';
email.Importance := olImportanceNormal;
email.Recipients.Add(''+EdtPara.Text);
email.BCC:=''+ edtbcc.Text; //copia oculta
email.CC :=''+ edtcc.Text; //copia visivel
for I := 0 to LbxAnexos.Items.Count - 1 do
email.Attachments.Add(''+LbxAnexos.Items.Strings[I], EmptyParam, EmptyParam, EmptyParam);
if (email.Recipients.ResolveAll) then
email.Send
else
begin
Application.MessageBox('Um ou mais destinatários não puderam ser resolvidos.'#13+'Reveja a informação e tente novamente.', 'Alerta', MB_ICONWARNING);
email.Display(true);
end;
Application.MessageBox('Email enviado com sucesso!', 'Confirmação',MB_ICONINFORMATION + MB_OK);
statusbar1.Panels [0].Text := 'Email enviado com sucesso!';
OutlookApp.Disconnect;
OutlookApp.Free;
Então é isso galera, logo mais irei mostrar como fazer a mesma aplicação utilizando o componente Indy Nativo do Delphi.
Abraço e até aproxima
Parabéns mano...vai me ajudar..
ResponderExcluirObrigado Wellington, logo mais irei postar como enviar via Indy 9.
ResponderExcluir