Domanda

Sto automatizzando Outlook e devo controllare da chi appare l'e-mail. Gli utenti avranno due o più account configurati in Outlook e devo essere in grado di selezionare da quale account inviare l'e-mail. Qualche idea?

Deve essere supportato su Outlook 2003 e versioni successive. Sto usando Delphi 2006 per codificare questo, ma non importa.

È stato utile?

Soluzione

Una persona di nome Sue Mosher ha scritto un bel sommario su questo problema in microsoft.public.office.developer.outlook.vba .

In breve, si riduce a uno di questi:

  • usa MailItem.SentOnBehalfOfName , che funziona solo negli ambienti Exchange (suppongo che sia il caso per te) - quando l'utente ha " Invia come " autorizzazioni per l'altra cassetta postale di Exchange, è praticamente la stessa cosa del cambio di account.
  • usa un piccolo hack che coinvolge armeggiare con CommandBars
  • utilizza Outlook Redemption
  • (in OL2007, avresti MailItem.SendUsingAccount)

Altri suggerimenti

Espandendo un po 'la risposta accettata, avevo bisogno di un'implementazione Delphi della funzione set_account di Sue. Non ho trovato nulla su Internet da nessuna parte per questo, quindi ecco un'interpretazione di Delphi del codice di 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;

Ringraziamo Sue Mosher, grazie, non avresti potuto farlo senza di te :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top