Faça sua buscar ...

segunda-feira, 10 de março de 2014

Envio de Email utilizando Outlook Delphi 7

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

2 comentários: