2015-08-10 1 views
13

J'essaie d'ajouter une fonctionnalité à mon application C#/.Net pour qu'un utilisateur puisse envoyer un fichier par courrier électronique. Lorsqu'un utilisateur a Outlook installé, je peux utiliser avec succès les API d'interopérabilité Outlook pour faire exactement ce que je veux. Toutefois, dans une nouvelle installation de Windows 10, je n'arrive pas à déterminer comment ouvrir un courrier électronique avec une pièce jointe dans l'application Mail par défaut, qui provient du Windows Store.Comment ouvrir un nouveau courriel avec pièce jointe dans Windows 10 Mail App

J'ai essayé:

  1. Utilisation des fichiers EML, selon https://stackoverflow.com/a/25586282/2102158

    • L'application Mail ne s'enregistre pas pour ouvrir EML fichiers
  2. Utilisation du MAPI32. dll etc. (J'ai utilisé le code de https://github.com/metageek-llc/inSSIDer-2/blob/master/MetaScanner/UnhandledException/MapiMailMessage.cs)

    • Une boîte de dialogue s'affiche indiquant qu'aucun programme de messagerie électronique n'est enregistré. Il semble que l'application de messagerie n'interagit pas avec MAPI
  3. Utilisation de liens mailto:.

    • Le programme de messagerie ouvre, mais il ne respecte pas les fichiers joints = ou = paramètres Fixer

également

  • Windows.ApplicationModel.Email.EmailMessage semble être seulement disponible sur les téléphones. Je ne veux pas utiliser SMTP pour envoyer le côté serveur de messages.

  • J'ai aussi essayé le MS-UNISTORE_EMAIL: et OUTLOOKMAIL: schémas d'URL, qui sont associés à l'application Mail, ils semblaient se comporter comme mailto:

  • Il ne semble pas être un moyen de commencer l'application mail de la ligne de commande

+0

J'ai la même exigence, est-ce que tu viens juste avec ça? –

+0

L'application Windows 10 Mail ouvre le fichier .eml maintenant, mais il ne reconnaît pas le champ X-Unsent pour l'afficher en tant que courrier électronique sortant. –

Répondre

0

S'il vous plaît essayer l'exemple suivant

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 partie est ShowComposeNewEmailAsny(...) la partie magique.

+0

Windows.ApplicationModel.Email.EmailAttachment etc est disponible sur Windows 10 (pas de téléphone) maintenant? –

+0

? Je ne comprends pas. Je pense que vous utilisez Windows 10? – STORM

+0

ouais Windows 10 bureau. Lorsque j'ai posé la question (il y a presque 2 ans) des classes telles que "Windows.ApplicationModel.Email.EmailAttachment" - Je pense que tout l'espace de noms Windows.ApplicationModel.Email, étaient uniquement disponibles sur la version Windows Phone de Windows. –