Outlook Automatisierung - Change Sender Konto
-
03-07-2019 - |
Frage
Ich bin zu automatisieren Outlook und ich brauche zu kontrollieren, wer die E-Mail von zu sein scheint. Der Anwender hat zwei oder mehr Konten in Outlook einrichten und ich muß in die Lage zu wählen, die von der E-Mail sendet Konto. Irgendwelche Ideen?
Anforderungen auf Outlook 2003 und höher unterstützt werden. Ich verwende Delphi 2006 ist dieses zu kodieren, aber das ist nicht wirklich wichtig.
Lösung
Eine Person namens Sue Mosher schrieb eine hübsche Zusammenfassung zu diesem Thema in microsoft.public.office.developer.outlook.vba .
Kurz gesagt, es läuft darauf hinaus, entweder von dieser nach unten:
- Verwendung
MailItem.SentOnBehalfOfName
, die nur in Exchange enviromnents funktioniert (ich nehme an, dass der Fall für Dich ist) - wenn der Benutzer „Senden als“ Berechtigungen für das andere Exchange-Postfach, das ist so ziemlich die gleiche wie Schalen Konten <. / li> - verwenden, um einen kleinen Hack, der mit dem
CommandBars
beinhaltet das Hantieren
- Verwendung Outlook Redemption
- (in OL2007, würden Sie haben
MailItem.SendUsingAccount
)
Andere Tipps
ein bisschen auf die akzeptierte Antwort Aufweiten, brauchte ich eine Delphi Implementierung von Sues set_account Funktion. Kann nichts im Internet überall für diese zu finden, ist so hier eine Delphi-Interpretation von Sues Code.
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;
Kredit zu Sue Mosher, danke, es nicht ohne Sie getan haben könnte :)