2012-10-04 14 views

Respuesta

9

La forma correcta sería usar Compartir. Su aplicación debe crear un documento HTML o Texto y compartirlo. El usuario seleccionaría Mail desde el encantamiento de Compartir y el HTML/Texto se convertiría en el cuerpo del correo electrónico.

Ver aquí para más información ...

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh973055.aspx

+0

El problema con esto es (no con el caso especial mencionado en la pregunta, sin embargo), es cuando yo e. gramo. tener un botón de retroalimentación, no puedo redirigir al usuario a la barra de encanto. – jalgames

30

Usted puede tratar con

var mailto = new Uri("mailto:[email protected]&subject=The subject of an email&body=Hello from a Windows 8 Metro app."); 
await Windows.System.Launcher.LaunchUriAsync(mailto); 
+0

Uso compartido para Windows 8 RT App –

+0

Lo intenté y funciona bien, pero creo que la forma "preferida" sería a través de Compartir encanto. ¡Gracias por tu aporte! –

+4

La forma preferida no es siempre la parte Charm. El encanto de compartir se usa cuando quieres compartir contenido específico desde tu aplicación. por ejemplo, cuando tengo una lista de contactos en mi aplicación cuando selecciono un contacto y presiono compartir, supongo que puedo compartir los datos de contacto de este contacto y no enviarle un correo. para enviarle un correo electrónico, seleccionaría el contacto y presionaría un ícono de correo en la barra de la aplicación que usa mailto: y abrirá la aplicación de correo a pantalla completa. – GeertvdC

1

Siempre es posible conectarse a un servidor SMTP y ejecutar comandos como HELO, MAIL, RCPT, etc. Por supuesto que necesita un servidor SMTP para conectarse Lo uso en nuestra intranet corporativa para enviar correos electrónicos.

+0

Uso compartido para Windows 8 RT App –

6

Ésta es la sintaxis correcta a utilizar para un enlace mailto: (a diferencia de los otros ejemplos anteriores con un mailto: cuales son incorrectas ..)

var mailto = new Uri("mailto:[email protected]?subject=" + subject + "&body=" + body); 
await Launcher.LaunchUriAsync(mailto); 

El problema con el método mailto: es si el usuario no tiene ningún programa cliente asociado con mailto: nada sucederá.

El método más confiable para usar es un servicio web o servicio WCF de algún tipo. Usar el Charm de Compartir mientras se considera el modo "correcto" en Windows 8, no es necesariamente el mejor ya que el usuario aún no puede tener instalado un cliente de correo electrónico, por ejemplo, si confían en gmail.com para su correo electrónico.

3

Si está desarrollando una aplicación Windows de Universal WinRT, puede usar el espacio de nombres "Windows.ApplicationModel.Email.EmailMessage" ya que el espacio de nombres "Microsoft.Phone.Tasks.EmailComposeTask" no funciona en la aplicación WinRT.

Luego, usa este código para crear e iniciar un nuevo correo electrónico.

// Create your new email message. 
var em = new EmailMessage() ; 

// Add as much EmailRecipient in it as you need using the following method. 
em.To.Add(new EmailRecipient("[email protected]")); 
em.Subject = "Your Subject..."; 
em.Body = "Your email body..."; 
// You can add an attachment that way. 
//em.Attachments.Add(new EmailAttachment(...); 

// Show the email composer. 
await EmailManager.ShowComposeNewEmailAsync(em); 

Espero que resuelva su problema (u otros desarrolladores).

Atentamente.

+1

¿Hay alguna manera de hacer exactamente eso en una aplicación de la tienda de Windows 8? – SandRock

Cuestiones relacionadas