2008-10-24 8 views
14

Tengo un requisito para leer el asunto, la dirección del remitente y el cuerpo del mensaje nuevo en la bandeja de entrada de Outlook desde un programa C#. Pero recibo una alerta de seguridad 'Un programa está intentando acceder a las direcciones de correo electrónico que ha almacenado en Outlook. ¿Quieres permitir esto?Cómo evitar la alerta de seguridad de Outlook al leer el mensaje de Outlook del programa C#

Buscando en Google encontré algunas bibliotecas COM de terceros para evitar esto. Pero estoy buscando una solución que no requiera ninguna biblioteca COM de terceros.

Respuesta

10

Lo siento, he tenido ese problema molesto en los complementos de Outlook 2003 y Outlook 2007, y la única solución que funcionó fue comprar una licencia Redemption. En Outlook 2007, esa ventana emergente molesta solo debería aparecer si su firewall está inactivo o si su software antivirus está desactualizado por lo que recuerdo.

+0

La desafortunada verdad es que hubo tantos abusos de Outlook que Microsoft lo bloqueó y no proporciona una forma de evitarlo. Supongo que podría intentar replicar lo que Redemption hace usted mismo, pero dudo que el costo/beneficio supere la licencia de $ 200. – Godeke

+0

de hecho, $ 200 no es nada en comparación con el tiempo en el que necesitaría llegar a algo como el canje – Kasper

+3

No sé ustedes, pero intenté la respuesta de Kumar a continuación (use 'oOutlookApp = Globals.ThisAddIn.Application', en lugar de que crear un nuevo objeto de Outlook, funcionó muy bien para mí, ¡deberías votar totalmente su respuesta! :-)) – Jared

1

Si su solicitud no es un tapón de Outlook en el se puede ver en MAPI para leer los datos del buzón de entrada

5

probar este

Herramientas -> Macro -> Seguridad -> acceso mediante programación

Luego elige Nunca advertirme sobre actividades sospechosas.

+0

Voy por el principio del beso. Busqué stackoverflow encontré este hilo lo llamaremos. Lea todo sobre las soluciones sofisticadas. Lee este. Intenté y Dang, ¿qué sabes? Funcionó. Esa es la clase de solución simple que me gusta. Tuve suerte de que mi cliente utilizara Outlook2007. No todas las Outlook anteriores tienen esta opción. – kingchris

+2

Todas estas opciones están deshabilitadas en mi Outlook 2007. ¿Es porque tenemos un servidor de Exchange? ¿Es posible configurarlo a través de políticas grupales o algo así? – Lars

+2

No veo Acceso programático en 2003 – Jeff

3

"Pero estoy buscando una solución que no requiera ninguna biblioteca COM de terceros".

No lo encontrarás. Kasper ya señaló la única solución que yo sepa. La redención ha sido lo único que ha mantenido los complementos y el código de Outlook en funcionamiento. He hecho complementos comerciales de Outlook para Franklin Covey. Exploramos muchas cosas, pero Redemption fue lo único que nos ayudó a superar este obstáculo.

+1

En realidad, he sido capaz de "hacer clic" en este mensaje para que el usuario no lo note (2003 y 2007). En una aplicación comercial. –

+0

@Danbystrom: ¿Cómo hiciste eso? – Jeff

+1

@Jeff: engañar a Outlook para que crea que el botón Aceptar está siendo presionado por un humano ... –

15

Me encontré con el mismo problema al acceder a la dirección de correo electrónico del remitente para el elemento de correo de Outlook. Para evitar 'alerta de seguridad' no cree un nuevo objeto Aplicación, en su lugar use Globals.ThisAddIn.Application para crear un nuevo elemento de correo.

string GetSenderEmail(Outlook.MailItem item) 
    { 
     string emailAddress = ""; 
     if (item.SenderEmailType == "EX") 
     { 
      Outlook.MailItem tempItem = (Outlook.MailItem)Globals.ThisAddIn.Application.CreateItem(Outlook.OlItemType.olMailItem); 
      tempItem.To = item.SenderEmailAddress; 
      emailAddress = tempItem.Recipients[1].AddressEntry.GetExchangeUser().PrimarySmtpAddress.Trim(); 

     } 
     else 
     { 
      emailAddress = item.SenderEmailAddress.Trim(); 

     } 

     return emailAddress; 
    } 
+4

Si está creando un complemento de perspectiva real (y no una aplicación externa que esté ingresando en Outlook), entonces esta es la respuesta correcta. En los complementos de proceso, no se activa el cuadro de diálogo de advertencia siempre que solo utilicen el objeto Aplicación que Outlook les proporcionó al inicio (es decir, no creen un nuevo objeto Aplicación). –

+1

¡Excelente respuesta! La gran mayoría de los ejemplos agregan el código que encontré siempre creó un nuevo objeto 'Aplicación'. Esto resuelve MUCHOS problemas. :RE – Shaamaan

0

Utilizamos Advanced Security for Outlook de Mapilab para esto. Es gratis, también para uso comercial, y aún mantiene a Outlook a salvo (permitiendo solo el acceso desde aplicaciones aprobadas). Acabo de apostar a las soluciones mencionadas anteriormente que cuestan dinero o pueden comprometer la seguridad.

0

Puede desactivar la ventana emergente de seguridad utilizando el Centro de confianza de Outlook. Verificar here.

Cuestiones relacionadas