El caso de uso es simple. En un momento determinado de tiempo, tengo que ser capaz de mostrar al usuario el diálogo familiarizado Redactar correo electrónico (Outlook u otro) con¿Cómo puedo abrir el cuadro de diálogo redactar/crear correo utilizando el cliente de correo electrónico predeterminado del usuario?
- campos como el de, a, tema ya llena con valores determinados determinada aplicación.
- El correo electrónico también tendrá un archivo adjunto junto con él.
El correo no debe enviarse a menos que el usuario lo apruebe explícitamente.
Lo hice una vez en los viejos días VB6 ... no puedo entender cómo ahora ... Solo recuerdo que fue bastante fácil.
aplicación Gestionado, C#, .Net 3.0 o superior
Actualización # 1: Sí parece mailto apoyo eliminado debido a que los archivos adjuntos (como un riesgo para la seguridad?). Intenté
Debe incluir la firma ShellExecute as described here. Todo lo que tengo de esto fue un 5 SE_ERR_ACCESSDENIED
y 2 sólo para algunos variedad
string sMailToLink = @"mailto:[email protected]?subject=Hey&body= yeah yeah yeah";
IntPtr result = ShellExecute(IntPtr.Zero, "open", sMailToLink, "", "", ShowCommands.SW_SHOWNORMAL);
Debug.Assert(result.ToInt32() > 32, "Shell Execute failed with return code " + result.ToInt32());
La misma MailtoLink funciona perfectamente con Process.Start ... pero siempre y cuando no has de mencionar adjuntos.
System.Diagnostics.Process.Start(sMailToLink);
Las otras opciones están utilizando el modelo de objetos de Outlook para hacer esto .. pero me han dicho que esto requiere que añadir referencias de ensamblado en base a la versión exacta de Outlook instalado. También esto explotaría si el usuario no prefiere MS por correo electrónico.
La siguiente opción es Mapi y algo llamado Mapi33 .. El estado todavía EN PROGRESO. Oídos aún abiertos a sugerencias.
sí encontraron esta vía google. Sin embargo, ShellExecute no quiere hablar conmigo ahora mismo. :) – Gishu