Ejecutar una regla en un equipo local
En este ejemplo se muestra cómo ejecutar una regla en un equipo local mediante la propiedad OnLocalMachine del objeto RuleConditions.
Ejemplo
Nota:
El siguiente ejemplo de código es un fragmento de Programming Applications for Microsoft Office Outlook 2007 (Programación de aplicaciones para Microsoft Office Outlook 2007).
Si el buzón de correo está hospedado en un servidor de Exchange, se puede ejecutar una regla en el servidor de Exchange o en el cliente de Outlook. Si la regla se ejecuta en el servidor, no es necesario que Outlook esté en ejecución para que se evalúen las condiciones de la regla y se completen las acciones de esta. Si la regla se ejecuta en el cliente, Outlook debe estar ejecutándose para que se ejecute la regla. Si la propiedad IsLocalRule del objeto Rule devuelve true, la regla se ejecuta en el cliente.
Para las acciones de la regla que se ejecutan en el cliente de forma predeterminada (como, por ejemplo, mostrar una alerta de correo nuevo), se habilitará automáticamente la condición OnLocalMachine, y la propiedad Enabled se establecerá en true para un objeto RuleAction solo del lado cliente. Para las acciones de la regla que, por lo general, se ejecutan en el servidor, establezca la propiedad Enabled del objeto RuleAction del lado cliente para habilitar la condición OnLocalMachine. Esto forzará que la regla se ejecute localmente en el cliente.
Cuando se habilita la condición OnLocalMachine para una regla, también se habilita la condición OnOtherMachine cuando se examina la misma regla desde otro equipo. Una condición de regla de tipo olConditionOtherMachine indica que la regla solo puede ejecutarse en un equipo específico que no sea el actual, y no puede habilitarse o deshabilitarse mediante programación. Por ejemplo, si se crea una regla en el equipo actual y se habilita la condición OnLocalMachine, la regla solo puede ejecutarse en ese equipo. Si se ejecuta la misma regla en otro equipo, la regla mostrará que la condición de regla OnOtherMachine está habilitada.
En el ejemplo siguiente, DemoOnMachineOnly crea una regla y habilita la condición OnlyToMe y la acción Forward estableciendo las propiedades Enabled en true. Después, se habilita la condición OnLocalMachine, que fuerza que se ejecute localmente una regla del lado del servidor, y se guardan las reglas. De forma predeterminada, en el servidor estarán operativas una acción Forward y una condición OnlyToMe. Una vez que se haya habilitado la condición OnLocalMachine, actuarán como una regla del lado cliente.
Si usa Visual Studio para probar este ejemplo de código, primero debe agregar una referencia al componente de la biblioteca de objetos de Microsoft Outlook 15.0 y especificar la variable de Outlook al importar el espacio de nombres Microsoft.Office.Interop.Outlook. La instrucción using no debe producirse directamente antes de las funciones en el ejemplo de código, pero debe agregarse antes de la declaración de clase pública. La siguiente línea de código muestra cómo realizar la importación y la asignación en C#.
using Outlook = Microsoft.Office.Interop.Outlook;
private void DemoOnMachineOnly()
{
Outlook.Rules rules =
Application.Session.DefaultStore.GetRules();
Outlook.Rule rule =
rules.Create("Demo Machine Only Rule",
Outlook.OlRuleType.olRuleReceive);
rule.Conditions.OnlyToMe.Enabled = true;
rule.Actions.Forward.Enabled = true;
rule.Actions.Forward.Recipients.Add("someone@example.com");
rule.Actions.Forward.Recipients.ResolveAll();
// Force the rule to execute locally
rule.Conditions.OnLocalMachine.Enabled = true;
rules.Save(true);
}