Pergunta

Estou automatizar o Outlook e eu preciso para controlar quem o e-mail parece ser de. Os usuários terão duas ou mais contas configuradas no Outlook e eu preciso ser capaz de selecionar qual conta para enviar o e-mail de. Alguma idéia?

Precisa ser apoiado no Outlook 2003 e acima. Estou usando o Delphi 2006 para este código, mas isso realmente não importa.

Foi útil?

Solução

Uma pessoa chamada Sue Mosher escreveu um resumo muito sobre este assunto em microsoft.public.office.developer.outlook.vba .

Em suma, resume-se a qualquer um de presente:

  • uso MailItem.SentOnBehalfOfName, que só funciona em enviromnents Câmbio (suponho que é o caso para você.) - quando o usuário tem "Enviar como" permissões para outra caixa de correio do Exchange, esta é praticamente a mesma coisa que as contas de comutação
  • usar um pequeno hack que envolve mexer com o CommandBars
  • uso Outlook Redenção
  • (em OL2007, você teria MailItem.SendUsingAccount)

Outras dicas

A expansão um pouco sobre a resposta aceita, eu precisava de uma implementação de Delphi da função set_account de Sue. Não foi possível encontrar nada no lugar internet para isso, então aqui é uma interpretação Delphi de código de Sue.

Function SetAccount(TargetAccount:string; var MailItem:OLEVariant):boolean;
var OLI,CBs,CBP,MC:olevariant;
    strAccountBtnName:String;
    i,t:Integer;
    FoundAccount:Boolean;
Const ID_ACCOUNTS = 31224;
begin
    FoundAccount:=false;
    OLI:=MailItem.GetInspector;
    CBs:=OLI.CommandBars;
    CBP:=CBs.FindControl(, ID_ACCOUNTS);
    t:=1;
    while (not FoundAccount) and (t<=CBP.Controls.Count) do begin
       MC:=CBP.Controls[t];
       i:=Pos(' ',MC.Caption);
       if i > 0 Then strAccountBtnName:=Copy(MC.Caption,i+1,Length(MC.Caption)-i)
       else strAccountBtnName:=MC.Caption;
       if strAccountBtnName = TargetAccount then begin
           MC.Execute;
           FoundAccount:=true;
       end;
       inc(t);
    end;
    Result:=FoundAccount;
end;

Crédito para Sue Mosher, obrigado, não poderia ter feito isso sem vocês :)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top