Ir para conteúdo
Fórum Script Brasil
  • 0

Criar um Grupo de Contatos no OutLook


Jhonas

Pergunta

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

  • 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.

Link para o comentário
Compartilhar em outros 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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...