c# - que - un programa esta intentando enviar correo electronico automaticamente en su nombre outlook 2003
Enviar correo electrónico a través de MS Outlook y deshabilitar la advertencia (2)
Una de las soluciones más fáciles es usar el servidor SMTP de Exchange. Aquí hay un ejemplo de MSDN .
string to = "[email protected]";
string from = "[email protected]";
MailMessage message = new MailMessage(from, to);
message.Subject = "Using the new SMTP client.";
message.Body = @"Using this new feature, you can send an e-mail message from an application very easily.";
SmtpClient client = new SmtpClient(server);
// Credentials are necessary if the server requires the client
// to authenticate before it will send e-mail on the client''s behalf.
client.UseDefaultCredentials = true;
client.Send(message);
Por supuesto, deberá verificar con su administrador de Exchange para asegurarse de que SMTP esté habilitado.
Tengo un programa C # que ejecutaré diariamente (a través del programador de Windows). El programa es enviar un informe diario a mi equipo. He escrito lo siguiente para enviar el correo electrónico y funciona. el único problema es que Outlook muestra un cuadro de mensaje "Un programa está intentando enviar un mensaje de correo electrónico en su nombre. Si esto es inesperado ......". hay tres botones que "permiten" "denegar" "ayuda" y parece que mi programa se detuvo en ese momento y hasta que haga clic en el botón de permitir o denegar, el programa no envía el correo electrónico. Sé que puedo cambiar las opciones yendo a herramientas -> centro de confianza -> acceso programático, pero realmente me gustaría no usar eso porque este programa eventualmente se ejecutará desde otra máquina donde el usuario puede o no acceder a cambie la configuración en el centro de confianza. ¿Hay alguna manera de desactivar esta advertencia programáticamente? ... o hay otra forma de enviar el correo electrónico sin tener esta ventana emergente de advertencia
aquí está el código usado para enviar el correo electrónico ... y funciona bien ...
Application olook = new Application();
NameSpace ns = olook.GetNamespace("MAPI");
ns.Logon(null, null, true, true);
_MailItem msg = (_MailItem)olook.CreateItem(OlItemType.olMailItem);
msg.To = "[email protected]";
msg.Subject = "test";
msg.HTMLBody = strHTML;
msg.Send();
ns.Logoff();
hay varias maneras de hacerlo que podría desactivar la ventana emergente como @DJ KRAZE descrito
o puede enviar un mensaje a través de smtp, si eso es posible en su entorno, consulte esto: http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx
entonces podrías usar la "biblioteca de redención" que he usado y no habrá mensajes, porque la redención los suprime (o funciona a su alrededor) pero la biblioteca se usa a través de com, eso no es tan cómodo ... aunque tienes que pagar para eso: http://www.dimastr.com/redemption/home.htm
La alternativa es usar los Servicios Web de Exchange administrados http://www.microsoft.com/download/en/details.aspx?id=13480, esto es bastante directo y divertido de usar. puedes obtenerlo a través de NuGet también. :)
EDITAR:
olvidé mencionar que los servicios web de Exchange solo están disponibles en Exchange 2007 SP1 o superior. y esto es lo que parece enviar un mensaje (después de conectarse al servidor)
EmailMessage message = new EmailMessage(service);
message.Subject = "Hello from the EWS Managed API";
message.Body = "Now that''s easy!";
message.ToRecipients.Add("[email protected]");
message.Save();
mira aquí para una introducción: http://msdn.microsoft.com/en-us/library/dd637749(v=exchg.80).aspx