• 0
Sign in to follow this  
Jhonas

Criar um Grupo de Contatos no OutLook

Question

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('[email protected]');
  ContactsEmail.Add('[email protected]');
  ContactsEmail.Add('[email protected]');
  ContactsEmail.Add('[email protected]');
  ContactsEmail.Add('[email protected]');

  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

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Boa tarde, Jhonas.

Para a criação de Grupos de Usuário, o código acima funciona perfeitamente. Porém, o Outlook sempre pede a confirmação de permissão para o usuário, conforme a imagem abaixo.

tela.png.da50eabd5d3f8077374427433268a2d0.png

Para o programa que estou desenvolvendo, preciso que a criação de grupos de contato seja silenciosa, sem que o usuário tenha que interagir.

 

Você já passou por isso? Sabe como posso resolver?

 

Obrigado.

Share this post


Link to post
Share on other sites
  • 0

essa mensagem faz parte do sistema de proteção  do Microsoft Outlook

voce pode contornar isso com um antivírus

https://support.office.com/pt-br/article/Recebo-avisos-sobre-um-programa-que-está-acessando-informações-de-endereço-de-email-ou-enviando-um-email-em-meu-nome-df007135-c632-4ae4-8577-dd4ba26750a2

voce até pode desabilitar essa proteção, mas é por sua conta e risco

Abra o Outlook Express > acesse o menu Ferramentas > Opções... > guia "Segurança" > em seguida desmarque a opção "Avisar quando outro aplicativo tentar enviar email como se fosse eu".

ou use um programa para isso

http://www.contextmagic.com/express-clickyes/

outros links:

https://www.google.com.br/?gws_rd=ssl#q=um+programa+está+tentando+acessar+emails+armazenados+no+outlook

abraço

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this