Creare una mail da Xamarin Forms

La richiesta è semplice, ma la risposta è un pò più complessa e articolata. Desidero creare una mail dalla mia app Xamarin Forms.

Con il termine “creare una mail” si può intendere una delle due cose nel seguito.

1) Spedire direttamente dalla nostra fantastica app la mail stessa, contattando sempre dal nostro fantastico codice direttamente un server smtp etc, etc….

2) Creare una nuova mail usando il client di posta predefinito e questa viene visualizzata di fronte alla nostra app per poter essere completata e quindi spedita.

Curiosamente implementare il punto 1 sembra più semplice: è più rognoso eseguire correttamente il punto 2, poichè ci sono cose che nessuno scrive o dice esplicitamente.

Qui tratterò solo quanto in punto 2 !

Per creare una mail usando codice Xamarin Forms condiviso e usando il client di posta predefinito è possibile agevolmente usare codice nativo e quindi il Dependecy Service (non Vi riporto il codice relativo per non offernderVi…).

Alternativamente ho trovato molto efficace e funzionale usare il plugin Xamarin.Plugins.Messaging: con poche righe di codice si ottiene una mail bell’e pronta.

Attenzione però: tenete conto dei punti nel seguito prima di cimentarVi nel codice.

La nosta App deve avere i corretti permessi per accedere le risorse necessarie.

Anche se si formatta il testo come HTML, il client di posta predefinito in Android non riconoscerà tutti i TAG.

Ad esempio il tag TABLE non verrà in alcun modo riconosciuto e gestito (almeno alla data attuale).

Detto in altre parole: creando una mail con il client di posta predefinito pur usando il formato HTML non sarà possibile in alcun modo inglobare nel body una tabella !

Questo lo potete riscontare anche creando manualmente una mail: anche se la mail è in formato HTML non sarà possibile in alcun modo creare una tabella, ma solo mettere un pò di testo, e formattato in modo blando e poco complesso.

Questo problema affligge solo Android, e anche nell versioni più recenti (anzi: si vocifera che nelle vecchie revisioni le cose andavano meglio….)

Questa limitazione è legata al client di posta predefinito installato in Android, appunto ! Non esiste alcun tipo di soluzione, se non installare un client di posta più evoluto e renderlo predefinito: l’altra possibilità è quello di creare la mail e di mettere le Vs fantastiche tabelle e tutto il testo formattato che volete come file html allegato.

Meglio sarebbe pdf, ma allora la cosa si complica poichè occorrerà usare qualche libreria esterna: ma di questo ne parleremo magari in uno dei prossimi post !

Linkografia

Xam.Plugins.Messaging