29 mars 2024

Comment envoyer un email avec une pièce jointe sur Windows Phone 8.1

Avec le nouvel Windows Phone 8.1, on a désormais la possibilité d’envoyer avec un email des pièces jointes ! Et oui, ça parait tout bête mais auparavant il fallait ruser. Dorénavant, on va faire cela nativement.

Sur les versions Windows Phone 7.x et 8.0


Voici un état des lieux avant l’arrivé de Windows Phone 8.1 :
emailComposeTask
Alors c’était très simple à coder et voilà, ça n’en faisait pas beaucoup plus.

Avec l’arrivée de Windows Phone 8.1


Sur Windows Phone 8.1, on ne joue plus avec EmailComposeTask (bien que cela fonctionne toujours sur WP8.1 Silverlight) mais on va créer un objet EmailMessage auquel on lui attache un EmailRecipient, un EmailAttachement, un contenu (Body) et un subject et on appelle la fonction asynchrone EmailManager pour envoyer le tout !
emailmanager de Windows phone8.1

Création d’un EmailRecipient :

var emailRecipient = new EmailRecipient();
emailRecipient.Address = "tossnetapp@domaine.tld";
emailRecipient.Name = "Société SodeaSoft";

Création de EmailMessage :

var emailMessage = new EmailMessage();
emailMessage.Subject = "Hello world";
emailMessage.Body = "Ceci est mon message ultra important";
emailMessage.To.Add(emailRecipient);
//ou emailMessage.To.Add(new EmailRecipient { Address = "tof@domaine.tld" }); 

Si on a besoin d’ajouter une pièce jointe, on va créer un objet EmailAttachment auquel on rattache le nom du fichier et le Stream de votre fichier :

StorageFile myFile = await Package.Current.InstalledLocation.GetFileAsync("Assets\\Square71x71Logo.scale-240.png");
var rass = RandomAccessStreamReference.CreateFromFile(myFile);
var attachment = new EmailAttachment(myFile.Name, rass);
emailMessage.Attachments.Add(attachment);

enfin, on appelle EmailManager qui se charge d’ouvrir l’application de messagerie du smartphone :

await Windows.ApplicationModel.Email.EmailManager.ShowComposeNewEmailAsync(emailMessage);

Comme vous le voyez c’est très différent de ce que l’on connaissait auparavant mais pas pour autant très difficile

Laisser un commentaire