2015-08-10 14 views
13

Sto cercando di aggiungere una funzione alla mia app C#/.Net affinché un utente possa inviare un messaggio via e-mail. Quando un utente ha installato Outlook, posso utilizzare correttamente le API di interoperabilità di Outlook per fare esattamente ciò che voglio. Tuttavia, in una nuova installazione di Windows 10, non riesco a capire come aprire un'e-mail con un allegato nell'app Mail predefinita, che proviene da Windows Store.Come aprire una nuova e-mail con allegato in App per Windows 10

ho provato:

  1. Utilizzo di file EML, come da https://stackoverflow.com/a/25586282/2102158

    • L'applicazione Mail non si registra da solo di aprire file EML
  2. Utilizzando la MAPI32. dll ecc. (Ho usato il codice da https://github.com/metageek-llc/inSSIDer-2/blob/master/MetaScanner/UnhandledException/MapiMailMessage.cs)

    • Viene visualizzata una finestra di dialogo che indica che non è stato registrato alcun programma di posta elettronica. Sembra che l'app di posta non interagisca con MAPI
  3. Utilizzo di collegamenti mailto :.

    • Il programma di posta si apre, ma non rispetta attachment = o allegare = Parametri

anche

  • Windows.ApplicationModel.Email.EmailMessage sembra essere solo disponibile sui telefoni.

  • Non voglio utilizzare SMTP per inviare il lato server dei messaggi.

  • Ho anche provato il MS-UNISTORE_EMAIL: e OUTLOOKMAIL: schemi URL, che sono associati alla applicazione Posta, sembravano comportarsi allo stesso come mailto:

  • Ci non sembra essere un modo per avviare l'applicazione posta dalla riga di comando

+0

Ho lo stesso requisito, siete venuti bene con questo? –

+0

L'app di Windows 10 Mail ora apre il file .eml ma non riconosce il campo X-Unsent per visualizzarlo come un messaggio di posta in uscita. –

risposta

0

prova il seguente esempio

private async void SendEmailButton_Click(object sender, RoutedEventArgs e) 
     { 
      EmailMessage emailMessage = new EmailMessage(); 
      emailMessage.To.Add(new EmailRecipient("***@***.com")); 
      string messageBody = "Hello World"; 
      emailMessage.Body = messageBody; 
      StorageFolder MyFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; 
      StorageFile attachmentFile =await MyFolder.GetFileAsync("MyTestFile.txt"); 
      if (attachmentFile != null) 
      { 
       var stream = Windows.Storage.Streams.RandomAccessStreamReference.CreateFromFile(attachmentFile); 
       var attachment = new Windows.ApplicationModel.Email.EmailAttachment(
         attachmentFile.Name, 
         stream); 
       emailMessage.Attachments.Add(attachment); 
      } 
      await EmailManager.ShowComposeNewEmailAsync(emailMessage);   
     } 

la parte ShowComposeNewEmailAsny(...) è la parte magica.

+0

Windows.ApplicationModel.Email.EmailAttachment etc è ora disponibile su Windows 10 (non sul telefono)? –

+0

? Non capisco. Penso che stai usando Windows 10? – STORM

+0

sì, Windows 10 desktop. Quando ho posto la domanda (quasi 2 anni fa) a classi come "Windows.ApplicationModel.Email.EmailAttachment" - penso che tutto lo spazio dei nomi Windows.ApplicationModel.Email fosse disponibile solo nella versione Windows Phone di Windows. –

Problemi correlati