[Help]:Outlook.Application - GetActiveOleObject

Delphi

14/03/2005

Pessoal estou com uma duvida um pouco tanto dificil andei verificando vários forum sobre delphi internacional e nacional mais não consegui resolver o meu problema.
É o seguinte existe um codigo para enviar email através do Outlook Application, este mesmo está rolando na net...em alguns forum o problema é que eu gostaria de passar dentro mesmo que não tem opção de copia dos email email enviados ou seja só existe a linha MailItem.Recipients.Add(sFromMail);
então gostaria que aplicação registra-se a copia do email como se no outlook.
Por favor aguardo um post sobre.
Codigo completo
procedure SendMail(sFromMail, sToMail, sSubject, sBody: String;bHTML, bAttachment, bSend: Boolean; sAttachmentFile, sAttachmentName: String) ;
const
olMailItem = 0;
olByValue = 1;
var
OutlookApp, MailItem, MyAttachments: OLEVariant;
begin
try
OutlookApp := GetActiveOleObject(´Outlook.Application´);
except
OutlookApp := CreateOleObject(´Outlook.Application´);
end;

MailItem := OutlookApp.CreateItem(olMailItem);

// MailItem.Recipients.toAddress.Add(sFromMail);
MailItem.Recipients.Add(sFromMail);
// MailItem.Recipients.CCList.Add(sToMail);
MailItem.Subject := sSubject;

if bHTML then
MailItem.HTMLBody := sBody
else
MailItem.Body := sBody ;

if bAttachment then
begin
myAttachments := MailItem.Attachments;
myAttachments.Add(sAttachmentFile, olByValue, 1, sAttachmentName) ;
end ;

if bSend then
MailItem.Send // Je nach dem EMail Senden
else
MailItem.Save ; // Oder als Entwurf speichern

myAttachments := VarNull ;
OutlookApp := VarNull ;
end ;

[]´s


Beira Mar

Beira Mar

Curtidas 0

Respostas

Rômulo Barros

Rômulo Barros

14/03/2005

const olMailItem = 0;                              
var
Outlook: OLEVariant;
MailItem: Variant;
begin
try
Outlook:=GetActiveOleObject(´Outlook.Application´);
except
Outlook:=CreateOleObject(´Outlook.Application´);
end;
MailItem := Outlook.CreateItem(olMailItem);
with MailItem do begin
Recipients.Add(´email@email.com´);
Subject := ´Assunto´;
Body := ´corpo da mensagem´;
Attachments.Add(´C:\Windows\Win.ini´);
Send;
end; 
Outlook := Unassigned;
end;



GOSTEI 0
Beira Mar

Beira Mar

14/03/2005

Filhote obrigado pelo post ...Mais infelizmente não entendeu o que estou procurando pode ter certeza que antes de fazer uma sitação percorri vários outros metodos para resolver o meu problema.
Mais uma vez, qdo rodamos o codigo acima´, ou seja chamamo a funçào acima o delphi cria um email no outlook passado um valor no parametro Recipients.Add que altomáticamente preenche o email do destinatario da mensagem ou seja posso colocar vários email no destinatario mais o q realmente nescessito é colocar um email copia ou seja seria mais ou menos assim:
Para fulano@fulano.com.br no parametro Recipients.Add
Cc beltrano@beltrano.com.br no prametro que estou querendo saber.

Mais um vez obrigado pessoal da comunidade espero que todas contribuições postada fortale-sa muita mais nossa comunidade de desenvolvedores.
[]´s


GOSTEI 0
Marcelo Saviski

Marcelo Saviski

14/03/2005

Nunca usei, mas não é mais sim-ples usar os componentes da paleta Servers?


GOSTEI 0
Adranoen

Adranoen

14/03/2005

Não sei se já encontrou a solução mas acho que isso pode resolver seu problema....

substituir:

// MailItem.Recipients.CCList.Add(sToMail); 


por:

MailItem.CC.Add(sToMail); 


onde SToMail tem que ser uma string de e-mails separados por ´;´.


Espero ter ajudado.


GOSTEI 0
Ariel Duarte

Ariel Duarte

14/03/2005

Na verdade se colocar separado por ; vai dar erro, você precisa repetir o MailItem.CC.Add(sToMail); a cada email inserido, exemplo:

Posicao:=1;
While Posicao > 0 Do Begin
Posicao:=POS(';',Dados);
If Posicao = 0 Then Posicao:=POS(',',Dados);

If Posicao = 0 Then Begin
Email:=Trim(Dados);
End
Else Begin
Email:=Copy(Dados,1,Posicao-1);
Dados:=Trim(Copy(Dados,Posicao+1,500));
End;

MailItem.Recipients.Add(Email);
End;
GOSTEI 0
POSTAR