Outlook을 자동화하고 전자 메일의 출처를 제어해야합니다. 사용자는 Outlook에 두 개 이상의 계정을 설정하고 이메일을 보낼 계정을 선택할 수 있어야합니다. 어떤 아이디어?Outlook 자동화 - 보낸 사람 계정 변경
Outlook 2003 이상에서 지원되어야합니다. 이 코드를 작성하기 위해 Delphi 2006을 사용하고 있습니다 만, 그다지 중요하지 않습니다.
Outlook을 자동화하고 전자 메일의 출처를 제어해야합니다. 사용자는 Outlook에 두 개 이상의 계정을 설정하고 이메일을 보낼 계정을 선택할 수 있어야합니다. 어떤 아이디어?Outlook 자동화 - 보낸 사람 계정 변경
Outlook 2003 이상에서 지원되어야합니다. 이 코드를 작성하기 위해 Delphi 2006을 사용하고 있습니다 만, 그다지 중요하지 않습니다.
Sue Mosher라는 사람이이 문제에 대한 요약을 microsoft.public.office.developer.outlook.vba에 작성했습니다. - 사용자가있을 때 "다른 사람 이름으로 보내기"권한 만 (나는 그것이 당신의 경우와 가정) 교환 enviromnents에서 작동
MailItem.SentOnBehalfOfName
: 짧은에서 는,이 중 하나를 아래로 비등 다른 Exchange 사서함의 경우 이는 계정을 전환하는 것과 거의 같습니다.
(OL2007, 당신은 MailItem.SendUsingAccount
있을 것입니다)를 CommandBars
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;
신용, 당신 없이는 불가능했을 거예요, 감사합니다 :)
@Kiquenet 당신은 하나를 제공에 오신 것을 환영합니다 이상입니다. :) – Tomalak
http://stackoverflow.com/questions/14809023/sending-defer-message-delivery-and-change-default-account-using-powershell – Kiquenet