Pregunta

Estoy automatizando Outlook y necesito controlar de quién parece ser el correo electrónico. Los usuarios tendrán dos o más cuentas configuradas en Outlook y necesito poder seleccionar desde qué cuenta enviar el correo electrónico. ¿Alguna idea?

Necesita ser compatible con Outlook 2003 y superior. Estoy usando Delphi 2006 para codificar esto, pero eso realmente no importa.

¿Fue útil?

Solución

Una persona llamada Sue Mosher escribió un bonito resumen sobre este tema en microsoft.public.office.developer.outlook.vba .

En resumen, se reduce a cualquiera de estos:

  • use MailItem.SentOnBehalfOfName , que solo funciona en entornos de Exchange (supongo que ese es su caso), cuando el usuario tiene " Enviar como " permisos para el otro buzón de Exchange, esto es casi lo mismo que cambiar de cuenta.
  • use un pequeño truco que implique jugar con el CommandBars
  • usar la redención de Outlook
  • (en OL2007, tendría MailItem.SendUsingAccount)

Otros consejos

Ampliando un poco la respuesta aceptada, necesitaba una implementación de Delphi de la función set_account de Sue. No pude encontrar nada en Internet en ningún lugar para esto, así que aquí hay una interpretación de Delphi del 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;

Gracias a Sue Mosher, gracias, no podría haberlo hecho sin ustedes :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top