{"id":5133,"date":"2013-07-03T14:54:47","date_gmt":"2013-07-03T13:54:47","guid":{"rendered":"http:\/\/www.iprog.it\/blog\/?p=5133"},"modified":"2013-07-03T14:54:47","modified_gmt":"2013-07-03T13:54:47","slug":"ios-iphone-inviare-email-in-app","status":"publish","type":"post","link":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/","title":{"rendered":"iOS iPhone: Inviare email In-App"},"content":{"rendered":"<p>In questo tutorial tratteremo l&#8217;SDK iOS per mostrarti come consentire all&#8217;utente l&#8217;invio di email senza lasciare l&#8217;applicazione usando la classe\u00a0<strong>MFMailComposeViewController. <\/strong>Metteremo assieme un modello con destinatari, oggetto, corpo della email e persino una immagine allegata.<\/p>\n<p>iOS SDK fornisce un&#8217;interfaccia facile da usare, standard, per consentire agli utenti di inviare e modificare e-mail dall&#8217;interno la propria applicazione.\u00a0Per farlo, sar\u00e0 necessario utilizzare la classe MFMailComposeViewController.<\/p>\n<p>Questo view controller visualizza un&#8217;interfaccia di posta standard e fornisce anche la funzionalit\u00e0 per rispondere &#8220;agli eventi utente&#8221; eseguiti su tale interfaccia. Per esempio, la classe ti avviser\u00e0 se l&#8217;utente preme &#8220;Invia&#8221; o &#8220;Annulla&#8221;.<\/p>\n<p><strong>Nota: MFMailComposeViewController disponibile solo su iOS 3.0 o versioni successive.<\/strong><br \/>\nQuindi, come funziona? Segui i passaggi in questo tutorial per scoprire.<\/p>\n<h3>Creiamo un nuovo progetto di Xcode<\/h3>\n<p>Aprire Xcode e selezionare\u00a0\u201cCreate a new Xcode project\u201d. Selezionare\u00a0<em>View-based Application<\/em>\u00a0e poi clicca\u00a0<em>Next<\/em>.\u00a0Inserire un nome per il progetto. Io l&#8217;ho chiamato &#8220;Mail&#8221;. Inserire il vostro company id e assicurarsi di aver selezionato &#8220;iPhone&#8221; come famiglia di dispositivi,\u00a0poich\u00e9\u00a0stiamo per fare un app iPhone, possiamo scegliere anche iPad o universale se vogliamo supportare entrambi i dispositivi.<\/p>\n<p><a href=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/Schermata-2013-06-12-alle-12.26.39.png\" rel=\"lightbox[5133]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5137\" alt=\"Schermata 2013-06-12 alle 12.26.39\" src=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/Schermata-2013-06-12-alle-12.26.39.png\" width=\"733\" height=\"495\" srcset=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/Schermata-2013-06-12-alle-12.26.39.png 733w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/Schermata-2013-06-12-alle-12.26.39-300x202.png 300w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/Schermata-2013-06-12-alle-12.26.39-620x418.png 620w\" sizes=\"auto, (max-width: 733px) 100vw, 733px\" \/><\/a><\/p>\n<h3>Aggiungiamo l&#8217;interfaccia<\/h3>\n<p>Aprire il file &#8220;MailViewController.xib&#8221; e trascinare un pulsante nella view. Impostare il titolo del pulsante &#8220;Mail&#8221;. Ora selezionare il tasto centrale dell&#8217;Editor per visualizzare &#8220;Assistant Editor&#8221;, cos\u00ec possiamo aggiungere un&#8217;azione al pulsante che abbiamo appena creato.<\/p>\n<p><a href=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/MFMailComposeViewController_AssistantEditor.png\" rel=\"lightbox[5133]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5139\" alt=\"MFMailComposeViewController_AssistantEditor\" src=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/MFMailComposeViewController_AssistantEditor.png\" width=\"193\" height=\"48\" \/><\/a><\/p>\n<p>Seleziona il pulsante e clicca su <strong>CTRL\u00a0<\/strong>mentre trascini verso &#8220;MailViewController.h&#8221; nel popup che verr\u00e0 mostrato inserisci &#8220;openMail&#8221; come Name e assicurati che la Connection si Action, poich\u00e9 vogliamo creare un azione e non un outlet.<\/p>\n<p><a href=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/MFMailComposeViewController_connectButton.png\" rel=\"lightbox[5133]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5140\" alt=\"MFMailComposeViewController_connectButton\" src=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/MFMailComposeViewController_connectButton.png\" width=\"304\" height=\"196\" srcset=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/MFMailComposeViewController_connectButton.png 304w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/MFMailComposeViewController_connectButton-300x193.png 300w\" sizes=\"auto, (max-width: 304px) 100vw, 304px\" \/><\/a><\/p>\n<h3>MessageUI framework<\/h3>\n<p>Nell&#8217;area di navigatore di Xcode 4, selezionare il nome del progetto. Poi, selezionare il target (&#8220;Mail&#8221; in questo caso) e quindi selezionare la scheda \u201cBuild Phases\u201d.\u00a0Espandi l&#8217;opzione \u00a0\u201cLink Binary With Libraries\u201d\u00a0e quindi fare clic sul pulsante &#8220;+&#8221;. Scrivi &#8220;message&#8221; nella casella di ricerca e selezionare l&#8217;opzione <strong>MessageUI.framework<\/strong> che appare nell&#8217;elenco. Fare clic su &#8220;Add&#8221; per includere questo framework in fase di linking del vostro progetto.<\/p>\n<p>Ora che hai aggiunto il framework <strong>MessageUI<\/strong> nel progetto, \u00e8 necessario importarlo nel view controller che utilizzer\u00e0 il MFMailComposeViewController, quindi, nel nostro caso, MailViewController.h.<\/p>\n<p>Recati in questo file e modifica il codice come segue:<\/p>\n<p>[code lang=&#8221;obj-c&#8221;]<br \/>\n#import &lt;UIKit\/UIKit.h&gt;<\/p>\n<p>#import &lt;MessageUI\/MessageUI.h&gt;<\/p>\n<p>@interface MailViewController : UIViewController &lt;MFMailComposeViewControllerDelegate&gt;<\/p>\n<p>&#8211; (IBAction)openMail:(id)sender;<\/p>\n<p>@end<br \/>\n[\/code]<\/p>\n<div>Come puoi vedere, abbiamo anche dichiarato il MFMaileComposeViewControllerDelegate nel codice di cui sopra. Useremo questo delegato per vedere il risultato della posta.<\/div>\n<h3>Aggiungiamo le risorse<\/h3>\n<p>Trascinare l&#8217;immagine riportata di seguito nella cartella nel vostro progetto (probabile che dobbiate prima salvarla sul Mac e poi importarla su Xcode). Assicurarsi che \u00a0\u201cCopy items into destination group\u2019s folder (if needed)\u201d\u00a0sia selezionate prima di fare clic su finish.<\/p>\n<p><a href=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/iprog_logo_piccolo.png\" rel=\"lightbox[5133]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-4998\" alt=\"iprog_logo_piccolo\" src=\"http:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/iprog_logo_piccolo.png\" width=\"256\" height=\"130\" \/><\/a><\/p>\n<p>Aprire il file &#8220;MailViewController.m&#8221; e scorrere fino ad <em>openMail:<\/em>\u00a0e modificare il codice come segue:<\/p>\n<p>[code lang=&#8221;obj-c&#8221;]<\/p>\n<p>&#8211; (IBAction)openMail:(id)sender<\/p>\n<p>{<\/p>\n<p>if ([MFMailComposeViewController canSendMail])<\/p>\n<p>{<\/p>\n<p>}<\/p>\n<p>else<\/p>\n<p>{<\/p>\n<p>UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@&quot;Fallito&quot;<\/p>\n<p>message:@&quot;Il tuo dispositivo con supporta l&#8217;invio in-App&quot;<\/p>\n<p>delegate:nil<\/p>\n<p>cancelButtonTitle:@&quot;OK&quot;<\/p>\n<p>otherButtonTitles:nil];<\/p>\n<p>[alert show];<\/p>\n<p>[alert release];<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>[\/code]<\/p>\n<p>Qui controlliamo se il dispositivo corrente \u00e8 in grado di inviare e-mail con il metodo <em>canSendMail<\/em>\u00a0della classe <em>MFMailComposeViewController<\/em>. \u00c8 sempre necessario chiamare questo metodo, prima di aprire l&#8217;interfaccia di posta. Se il dispositivo non \u00e8 in grado di inviare posta elettronica, si dovrebbe informare l&#8217;utente (qui ho usato un UIAlertView per farlo).<\/p>\n<h3>Mostrare l&#8217;interfaccia principale<\/h3>\n<p>Se il dispositivo \u00e8 in grado di inviare e-mail, \u00e8 l&#8217;ora di visualizzare l&#8217;interfaccia di posta. Vai al metodo openMail: e modifichiamo il codice nell&#8217;istruzione <em>if <\/em>come segue:<em><br \/>\n<\/em><\/p>\n<p>[code lang=&#8221;obj-c&#8221;]<\/p>\n<p>{<\/p>\n<p>MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];<\/p>\n<p>mailer.mailComposeDelegate = self;<\/p>\n<p>[mailer setSubject:@&quot;Un messaggio da iProg.it&quot;];<\/p>\n<p>NSArray *toRecipients = [NSArray arrayWithObjects:@&quot;primaMail@example.com&quot;, @&quot;secondaMail@example.com&quot;, nil];<\/p>\n<p>[mailer setToRecipients:toRecipients];<\/p>\n<p>UIImage *myImage = [UIImage imageNamed:@&quot;iprog_logo_piccolo.png&quot;];<\/p>\n<p>NSData *imageData = UIImagePNGRepresentation(myImage);<\/p>\n<p>[mailer addAttachmentData:imageData mimeType:@&quot;image\/png&quot; fileName:@&quot;iprog_logo&quot;];<br \/>\nNSString *emailBody = @&quot;Hai visitato iProg.it ? Tanti tutorial disponibili&quot;;<\/p>\n<p>[mailer setMessageBody:emailBody isHTML:NO];<\/p>\n<p>[self presentModalViewController:mailer animated:YES];<\/p>\n<p>[mailer release];<\/p>\n<p>}<\/p>\n<p>[\/code]<\/p>\n<p>Prima si crea un oggetto MFMaileComposeViewController e l&#8217;abbiamo chiamato &#8220;mailer&#8221;. Abbiamo impostato il mailComposeDelegate a self, cos\u00ec possiamo vedere il risultato della posta. L&#8217;oggetto \u00e8 impostato a &#8220;Un messaggio da iProg.it&#8221;. Come potete vedere, il toRecipients \u00e8 di tipo NSArray. Questo perch\u00e9 \u00e8 possibile aggiungere pi\u00f9 destinatari. Ho aggiunto due indirizzi email fittizi, ma naturalmente \u00e8 possibile inserire qualsiasi indirizzo che desideri. Dopo di che, salviamo un&#8217;immagine come oggetto NSData, perch\u00e9 noi non possiamo inviare un UIImage direttamente.\u00a0Poi aggiungiamo l&#8217;oggetto NSData come allegato al nostro indirizzo e-mail. Abbiamo impostato il tipo di un&#8217;immagine png e il nome del file da &#8220;iprog_logo&#8221;. Questo significa che quando il ricevitore salva l&#8217;immagine, verr\u00e0 salvato sotto il nome &#8220;iprog_logo&#8221;. L&#8217;ultima cosa che facciamo \u00e8 mostrare il mailer prima di rilasciare l&#8217;oggetto mailer.<\/p>\n<h3>Controlliamo cosa succede<\/h3>\n<p>\u00c8 necessario chiudere manualmente l&#8217;interfaccia posta in risposta a una chiamata al metodo delegato. Aggiungere il codice riportato sotto il metodo openMail:<\/p>\n<p>[code lang=&#8221;obj-c&#8221;]<\/p>\n<p>&#8211; (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error<\/p>\n<p>{<\/p>\n<p>switch (result)<\/p>\n<p>{<\/p>\n<p>case MFMailComposeResultCancelled:<\/p>\n<p>NSLog(@&quot;Mail cancellata: hai annullato l&#8217;operazione e nessun messaggio di posta elettronica \u00e8 stato accodato.&quot;);<\/p>\n<p>break;<\/p>\n<p>case MFMailComposeResultSaved:<\/p>\n<p>NSLog(@&quot;Mail salvata: \u00e8 stato salvato il messaggio di posta elettronica nella cartella bozze.&quot;);<\/p>\n<p>break;<\/p>\n<p>case MFMailComposeResultSent:<\/p>\n<p>NSLog(@&quot;Inviato per e-mail: il messaggio di posta elettronica viene accodato in posta in uscita. \u00c8 pronta da inviare.&quot;);<\/p>\n<p>break;<\/p>\n<p>case MFMailComposeResultFailed:<\/p>\n<p>NSLog(@&quot;Invio non riuscito: il messaggio e-mail non \u00e8 stato salvato o in coda, forse a causa di un errore.&quot;);<\/p>\n<p>break;<\/p>\n<p>default:<\/p>\n<p>NSLog(@&quot;Email non inviata.&quot;);<\/p>\n<p>break;<\/p>\n<p>}<\/p>\n<p>[self dismissModalViewControllerAnimated:YES];<\/p>\n<p>}<\/p>\n<p>[\/code]<\/p>\n<p>In questo metodo di delegato, possiamo controllare il risultato del&#8217;invio con un&#8217;istruzione switch e poi chiudere il view controller con un&#8217;animazione. Nel codice di cui sopra, ho semplicemente stampato un messaggio NSLog con i risultati, ma il punto \u00e8 che l&#8217;app potrebbe rispondere in modo dinamico per l&#8217;azione dell&#8217;utente.<\/p>\n<h3>BONUS: Facciamola funzionare su iPad<\/h3>\n<p>Su un iPad sarebbe bello mostrare l&#8217;interfaccia Mail in una pagina appositamente disegnata. \u00c8 possibile farlo aggiungendo la seguente riga di codice appena sopra [self presentModalViewController:mailer animata: YES]<\/p>\n<p>[code lang=&#8221;obj-c&#8221;]mailer.modalPresentationStyle = UIModalPresentationPageSheet;[\/code]<\/p>\n<p>Abbiamo concluso. Per feedback o richieste lasciami un commento!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questo tutorial tratteremo l&#8217;SDK iOS per mostrarti come consentire all&#8217;utente l&#8217;invio di email senza lasciare l&#8217;applicazione usando la classe\u00a0MFMailComposeViewController. Metteremo assieme un modello con destinatari, oggetto, corpo della email e persino una immagine allegata. iOS SDK fornisce un&#8217;interfaccia facile da usare, standard, per consentire agli utenti di inviare e&#8230; <a href=\"https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":5,"featured_media":5137,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[1694,2036,1693,2141],"class_list":["post-5133","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-objective-c-ios","tag-email","tag-in-app","tag-mail","tag-mfmailcomposeviewcontroller"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>iOS iPhone: Inviare email In-App - iProg<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"iOS iPhone: Inviare email In-App - iProg\" \/>\n<meta name=\"twitter:description\" content=\"In questo tutorial tratteremo l&#8217;SDK iOS per mostrarti come consentire all&#8217;utente l&#8217;invio di email senza lasciare l&#8217;applicazione usando la classe\u00a0MFMailComposeViewController. Metteremo assieme un modello con destinatari, oggetto, corpo della email e persino una immagine allegata. iOS SDK fornisce un&#8217;interfaccia facile da usare, standard, per consentire agli utenti di inviare e... Read more &raquo;\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/Schermata-2013-06-12-alle-12.26.39.png\" \/>\n<meta name=\"twitter:creator\" content=\"@iprogblog\" \/>\n<meta name=\"twitter:site\" content=\"@iprogblog\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fabio\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/ios-iphone-inviare-email-in-app\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/ios-iphone-inviare-email-in-app\\\/\"},\"author\":{\"name\":\"Fabio\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\"},\"headline\":\"iOS iPhone: Inviare email In-App\",\"datePublished\":\"2013-07-03T13:54:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/ios-iphone-inviare-email-in-app\\\/\"},\"wordCount\":1090,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/ios-iphone-inviare-email-in-app\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/06\\\/Schermata-2013-06-12-alle-12.26.39.png\",\"keywords\":[\"email\",\"in app\",\"mail\",\"MFMailComposeViewController\"],\"articleSection\":[\"Objective-C iOS\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/ios-iphone-inviare-email-in-app\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/ios-iphone-inviare-email-in-app\\\/\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/ios-iphone-inviare-email-in-app\\\/\",\"name\":\"iOS iPhone: Inviare email In-App - iProg\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/ios-iphone-inviare-email-in-app\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/ios-iphone-inviare-email-in-app\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/06\\\/Schermata-2013-06-12-alle-12.26.39.png\",\"datePublished\":\"2013-07-03T13:54:47+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/ios-iphone-inviare-email-in-app\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/objective-c-ios\\\/ios-iphone-inviare-email-in-app\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/06\\\/Schermata-2013-06-12-alle-12.26.39.png\",\"contentUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2013\\\/06\\\/Schermata-2013-06-12-alle-12.26.39.png\",\"width\":733,\"height\":495},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/\",\"name\":\"iProg\",\"description\":\"perch\u00e9 reinventare la ruota?\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/5f7d1474b2b5e8fe635f84906efc8c51\",\"name\":\"Fabio\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g\",\"caption\":\"Fabio\"},\"description\":\"Esperienza nella progettazione e sviluppo di Applicazioni mobili. Integro le conoscenze acquisite in ambito accademico con un continuo studio di nuove tecnologie che mi permettano di creare applicazioni sempre pi\u00f9 affidabili sicure ed efficienti. Venite a trovarmi sul blog Fabiosoft Google+\",\"sameAs\":[\"http:\\\/\\\/www.fabiosoft.com\",\"https:\\\/\\\/www.facebook.com\\\/devfabionisci\\\/\",\"http:\\\/\\\/it.linkedin.com\\\/in\\\/fabionisci\"],\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/author\\\/fabiosoft\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"iOS iPhone: Inviare email In-App - iProg","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/","twitter_card":"summary_large_image","twitter_title":"iOS iPhone: Inviare email In-App - iProg","twitter_description":"In questo tutorial tratteremo l&#8217;SDK iOS per mostrarti come consentire all&#8217;utente l&#8217;invio di email senza lasciare l&#8217;applicazione usando la classe\u00a0MFMailComposeViewController. Metteremo assieme un modello con destinatari, oggetto, corpo della email e persino una immagine allegata. iOS SDK fornisce un&#8217;interfaccia facile da usare, standard, per consentire agli utenti di inviare e... Read more &raquo;","twitter_image":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/Schermata-2013-06-12-alle-12.26.39.png","twitter_creator":"@iprogblog","twitter_site":"@iprogblog","twitter_misc":{"Scritto da":"Fabio","Tempo di lettura stimato":"5 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/#article","isPartOf":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/"},"author":{"name":"Fabio","@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51"},"headline":"iOS iPhone: Inviare email In-App","datePublished":"2013-07-03T13:54:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/"},"wordCount":1090,"commentCount":0,"image":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/Schermata-2013-06-12-alle-12.26.39.png","keywords":["email","in app","mail","MFMailComposeViewController"],"articleSection":["Objective-C iOS"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/","url":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/","name":"iOS iPhone: Inviare email In-App - iProg","isPartOf":{"@id":"https:\/\/www.iprog.it\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/#primaryimage"},"image":{"@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/Schermata-2013-06-12-alle-12.26.39.png","datePublished":"2013-07-03T13:54:47+00:00","author":{"@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.iprog.it\/blog\/objective-c-ios\/ios-iphone-inviare-email-in-app\/#primaryimage","url":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/Schermata-2013-06-12-alle-12.26.39.png","contentUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2013\/06\/Schermata-2013-06-12-alle-12.26.39.png","width":733,"height":495},{"@type":"WebSite","@id":"https:\/\/www.iprog.it\/blog\/#website","url":"https:\/\/www.iprog.it\/blog\/","name":"iProg","description":"perch\u00e9 reinventare la ruota?","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iprog.it\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/5f7d1474b2b5e8fe635f84906efc8c51","name":"Fabio","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/03f928dca7330002301d292e5dc1b2fca35722d24a0628eaf129fd52acfc0a99?s=96&r=g","caption":"Fabio"},"description":"Esperienza nella progettazione e sviluppo di Applicazioni mobili. Integro le conoscenze acquisite in ambito accademico con un continuo studio di nuove tecnologie che mi permettano di creare applicazioni sempre pi\u00f9 affidabili sicure ed efficienti. Venite a trovarmi sul blog Fabiosoft Google+","sameAs":["http:\/\/www.fabiosoft.com","https:\/\/www.facebook.com\/devfabionisci\/","http:\/\/it.linkedin.com\/in\/fabionisci"],"url":"https:\/\/www.iprog.it\/blog\/author\/fabiosoft\/"}]}},"views":3336,"_links":{"self":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts\/5133","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/comments?post=5133"}],"version-history":[{"count":0,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts\/5133\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/media\/5137"}],"wp:attachment":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/media?parent=5133"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/categories?post=5133"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/tags?post=5133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}