2012-10-04 11 views

risposta

9

Il modo corretto sarebbe utilizzare Condivisione. La tua app dovrebbe creare un documento HTML o un testo e condividerlo. L'utente selezionerebbe Mail dall'accessorio Condividi e HTML/testo diventerebbe il corpo dell'e-mail.

Vedi qui per ulteriori informazioni ...

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

+0

Il problema con (non con il caso speciale menzionato nella domanda, però), è, quando io e. g. avere un pulsante di feedback, non posso reindirizzare l'utente alla Charm Bar. – jalgames

30

Si può provare 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

Usa condivisione per Windows 8 RT App –

+0

Provato e funziona benissimo, ma penso che il modo "preferito" sia attraverso Share Charm. Grazie per il tuo contributo! –

+4

Il modo preferito non è sempre la condivisione Fascino. Il fascino della condivisione viene utilizzato quando desideri condividere contenuti specifici dalla tua app. per esempio quando ho una lista di contatti nella mia app quando seleziono un contatto e premo share, vorrei assumere che potrei condividere i dettagli di contatto di questo contatto e non mandargli una mail. per mandargli una mail selezionerei il contatto e premo un'icona di posta nella barra delle applicazioni che usa mailto: e avvia l'app di posta a schermo intero. – GeertvdC

1

E 'sempre possibile connettersi a un server SMTP e comandi problema come HELO, MAIL, RCPT, ecc Naturalmente avrete bisogno di un server SMTP connettersi a. Io uso questo sulla nostra intranet aziendale per inviare e-mail.

+0

Usa condivisione per Windows 8 RT App –

6

Questa è la sintassi corretta da utilizzare per un collegamento mailto: (a differenza degli altri esempi di cui sopra con un mailto: che non sono corretti ..)

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

Il problema con il metodo mailto: è se l'utente non ha un programma client associato a mailto: non succederà nulla.

Il metodo più affidabile da utilizzare è un servizio Web o un servizio WCF di qualche tipo. L'uso di Share Charm pur essendo considerato il modo "corretto" su Windows 8, non è necessariamente il migliore in quanto l'utente potrebbe non avere ancora installato un client di posta elettronica, ad esempio se si affidano a gmail.com per la propria email.

3

Se si sta sviluppando un'applicazione Windows Phone WinRT universale, è possibile utilizzare lo spazio dei nomi "Windows.ApplicationModel.Email.EmailMessage" poiché lo spazio dei nomi "Microsoft.Phone.Tasks.EmailComposeTask" non funziona sull'applicazione WinRT.

Quindi, utilizza questo codice per creare e avviare una nuova e-mail.

// 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); 

Spero che risolva il problema (o altri sviluppatori).

Saluti.

+1

Un modo per fare esattamente questo in un'app di Windows 8 store? – SandRock

Problemi correlati