begin
//Conectar ao Outlook
try
myOlApp := GetActiveOleObject('Outlook.Application');
except
myOlApp := CreateOleObject('Outlook.Application');
end;
myNameSpace:=myOlApp.GetNameSpace('MAPI');
//Obter pasta de contatos raiz
ContactsFolder := myNameSpace.GetDefaultFolder(olFolderContacts);
// Cria o item de lista de distribuição
myDistList:=myOlApp.CreateItem(7);
// Nomear o Grupo de Contatos
myDistList.DLName:='Grupo de Trabalho Teste';
// O MailItem é necessário para
// criar a coleção de destinatários
myMailItem:=myOlApp.CreateItem(0);
myRecipients:=myMailItem.Recipients;
i := 0;
while i < ContactsFullName.Count do
begin
// Cria o novo contato
myContact:=myOlApp.CreateItem(2);
Pergunta
Jhonas
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
ContactsFullName : TStringList;
ContactsEmail : TStringList;
implementation
{$R *.dfm}
uses Comobj;
procedure CreateDistributionList;
const
olFolderContacts = $0000000A;
var
myOlApp, myNameSpace, myContact, myDistList, myMailItem, myRecipients, ContactsFolder : OleVariant;
WStr : WideString;
i : Word;
begin
//Conectar ao Outlook
try
myOlApp := GetActiveOleObject('Outlook.Application');
except
myOlApp := CreateOleObject('Outlook.Application');
end;
myNameSpace:=myOlApp.GetNameSpace('MAPI');
//Obter pasta de contatos raiz
ContactsFolder := myNameSpace.GetDefaultFolder(olFolderContacts);
// Cria o item de lista de distribuição
myDistList:=myOlApp.CreateItem(7);
// Nomear o Grupo de Contatos
myDistList.DLName:='Grupo de Trabalho Teste';
// O MailItem é necessário para
// criar a coleção de destinatários
myMailItem:=myOlApp.CreateItem(0);
myRecipients:=myMailItem.Recipients;
i := 0;
while i < ContactsFullName.Count do
begin
// Cria o novo contato
myContact:=myOlApp.CreateItem(2);
WStr := ContactsFullName.Strings;
myContact.FullName := WStr;
WStr := ContactsEmail.Strings;
myContact.Email1Address := WStr;
myContact.Save;
// Um contato com o seguinte endereço de e -mail
// deve existir para o método trabalhar com AddMembers
WStr := ContactsFullName.Strings;
myRecipients.Add(WStr);
myRecipients.ResolveAll;
myDistList.AddMembers(myRecipients);
myContact.Delete;
Inc(i);
end;
myDistList.Save;
myOlApp := Unassigned;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ContactsFullName := TStringList.Create;
ContactsEmail := TStringList.Create;
// Esses dados podem ser tirados de uma tabela do
// banco de dados
// NOMES DOS CONTATOS
ContactsFullName.Add('TESTE1');
ContactsFullName.Add('TESTE2');
ContactsFullName.Add('TESTE3');
ContactsFullName.Add('TESTE4');
ContactsFullName.Add('TESTE5');
// ENDEREÇO DE EMAILS DOS CONTATOS
ContactsEmail.Add('username1@bol.com.br');
ContactsEmail.Add('username2@bol.com.br');
ContactsEmail.Add('username3@bol.com.br');
ContactsEmail.Add('username4@bol.com.br');
ContactsEmail.Add('username5@bol.com.br');
CreateDistributionList;
end;
end.
======================================================
OBS: o teste foi feito para o Outlook 2002 - 2007
Para outras versões, usem :
var
Form1: TForm1;
implementation
{$R *.dfm}
{$IFDEF SYN_COMPILER_6}
uses
ComObj, Outlook2000;
{$ELSE}
uses
ComObj, Outlook8;
{$ENDIF}
========================================================
abraço
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.