{"id":608,"date":"2009-11-02T20:13:04","date_gmt":"2009-11-02T19:13:04","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=608"},"modified":"2010-02-08T20:06:25","modified_gmt":"2010-02-08T19:06:25","slug":"t004-inviare-una-e-mail","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/t004-inviare-una-e-mail\/","title":{"rendered":"T#004 &#8211; Inviare una e-mail"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2009\/11\/T004_Mail-150x150.jpg\" alt=\"T004_Mail\" title=\"T004_Mail\" width=\"150\" height=\"150\" class=\"alignleft size-thumbnail wp-image-627\" \/> Con il Tutorial di oggi impareremo a inviare una e-mail dalla nostra applicazione. Dopo aver inserito l&#8217;indirizzo del destinatario, l&#8217;oggetto e il testo della mail, baster\u00e0 premere il pulsante &#8220;Invia&#8221; per far aprire l&#8217;applicazione nativa Mail presente in tutti gli iPhone con tutti i campi, passati dalla nostra applicazione, pronti per l&#8217;invio al destinatario scelto. <\/p>\n<p>Aprite Xcode e create un nuovo progetto. Dalla solita finestra scegliete il template &#8220;<em>View-based Application<\/em>&#8221; e cliccate su &#8220;<em>Choose<\/em>&#8220;. Nel campo &#8220;<em>Save As<\/em>&#8221; inserite il nome per il programma, ad esempio <em>inviaMail<\/em>, scegliete la posizione per il vostro progetto, quindi salvate. <\/p>\n<p>Si aprir\u00e0 la finestra principale di Xcode. Aprite il file dell&#8217;interfaccia <em>MailViewController.h<\/em> e inserite il seguente codice:<!--more--><\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n#import <UIKit\/UIKit.h>\r\n\r\n@interface MailViewController : UIViewController {\r\n\tIBOutlet UITextField *txtA;\r\n\tIBOutlet UITextField *txtOggetto;\r\n\tIBOutlet UITextView *txtTesto;\r\n\t\r\n}\r\n\r\n-(void)invia:(id)sender;\r\n\r\n@end\r\n<\/pre>\n<p>Come potete vedere dal codice abbiamo dichiarato tre oggetti, due UITextField e una UITextView, che andremo poi a collegare ai rispettivi oggetti creati tramite Interface Builder, come avrete intuito dall&#8217;istruzione IBOutlet. Abbiamo inoltre dichiarato il metodo &#8220;invia&#8221; che andremo poi a collegare ad un pulsante creato anch&#8217;esso in IB.<\/p>\n<p>A questo punto aprite il file di implementazione della nostra classe <em>MailViewController.m<\/em> e inserite il codice per il metodo dichiarato nel file .h :<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n-(void)invia:(id)sender{\r\n\tNSString *stringaMail = [NSString stringWithFormat:@\"mailto:?to=%@&subject=%@&body=%@\", [[txtA text] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding], [[txtOggetto text] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding], [[txtTesto text]  stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];\r\n\t\r\n\t[[UIApplication sharedApplication] openURL:[NSURL URLWithString:stringaMail]];\r\n\r\n}\r\n<\/pre>\n<p>Qui non facciamo altro che creare una stringa utilizzando il formato classico del &#8220;<em>mailto<\/em>&#8221; usato in HTML per l&#8217;invio delle e-mail passando nel modo corretto i campi inseriti dall&#8217;utente tramite l&#8217;interfaccia grafica: il destinatario, l&#8217;oggetto e il testo della mail. Questi vengono infatti prelevati dalle due UITextField e dall&#8217;UITextView dichiarati in precedenza e che andremo a creare tramite Interface Builder a breve.<\/p>\n<p>Ricordate di inserire inoltre il metodo per la chiusura della tastiera, se non volete che una volta aperta rimanga nell&#8217;interfaccia utente nascondendo eventuali altre sue parti:<\/p>\n<pre lang=\"objc\" escaped=\"true\">\r\n\/\/ Metodo per far chiudere la tastiera\r\n-(BOOL)textFieldShouldReturn:(UITextField *)textField{\r\n\t[textField resignFirstResponder];\r\n\treturn YES;\r\n}\r\n<\/pre>\n<p>A questo punto non ci resta che aprire il file <em>MailViewController.xib<\/em> per creare la nostra interfaccia grafica e i rispettivi collegamenti con la classe.<\/p>\n<p>Trascinate nella View i seguenti oggetti:<\/p>\n<ul>\n<li>N. 2 UITextField<\/li>\n<li>N. 1 UITextView<\/li>\n<li>N. 3 UILabel<\/li>\n<li>N. 1 UIButton<\/li>\n<\/ul>\n<p>Modificate la loro posizione e le loro propriet\u00e0 in modo da ottenere una vista simile a quella mostrata in figura:<\/p>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2009\/11\/IB_Mail.jpg\" alt=\"IB_Mail\" title=\"IB_Mail\" width=\"320\" height=\"502\" class=\"aligncenter size-full wp-image-626\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2009\/11\/IB_Mail.jpg 320w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2009\/11\/IB_Mail-191x300.jpg 191w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><br \/>\n<\/center><\/p>\n<p>(Ricordate di mettere la spunta sulla propriet\u00e0 &#8220;<em>Editable<\/em>&#8221; della UITextView, che usiamo per semplice comodit\u00e0 al posto di una terza UITextField).<\/p>\n<p>Cliccate quindi su File&#8217;s Owner e dalla finestra &#8220;Connection&#8221; collegate <em>txtA<\/em> con la UITextField dove andr\u00e0 inserito il destinatario, <em>txtOggetto<\/em> con quella dove si inserir\u00e0 l&#8217;oggetto della mail e <em>txtTesto<\/em> con la UITextView (editabile) dove l&#8217;utente inserir\u00e0 il testo vero e proprio della mail.<\/p>\n<p>Collegate quindi il metodo <em>Invia:<\/em> con il pulsante creato facendo attenzione a selezionare &#8220;<em>Touch Up Inside<\/em>&#8221; una volta rilasciato il mouse sull&#8217;UIButton.<\/p>\n<p>Ricordare infine di collegare, come gi\u00e0 visto nel <a href=\"http:\/\/www.devapp.it\/wordpress\/t002-calcolo-di-una-somma.html\" target=\"blank\">Tutorial 02<\/a>, gli outlet delle UIText con File&#8217;s Owner per far sparire la tastiera quando non serve.<\/p>\n<p>A questo punto salvate, tornate a Xcode e cliccate su &#8220;Build and Run&#8221; per testare la vostra applicazione.<\/p>\n<p>Tenete presente che occorre avere l&#8217;applicazione Mail con un account di posta configurato per una corretta esecuzione dell&#8217;applicazione che funzioner\u00e0 perfettamente se installato direttamente su iPhone. Nella prossima immagine il programma in esecuzione.<\/p>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2009\/11\/T004_Mail.jpg\" alt=\"T004_Mail\" title=\"T004_Mail\" width=\"386\" height=\"742\" class=\"aligncenter size-full wp-image-627\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2009\/11\/T004_Mail.jpg 386w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2009\/11\/T004_Mail-156x300.jpg 156w\" sizes=\"auto, (max-width: 386px) 100vw, 386px\" \/><br \/>\n<\/center><\/p>\n<p><center><\/p>\n<h4>Video Tutorial<\/h4>\n<p> by David Pollak<br \/>\n<\/center><\/p>\n<p><center><br \/>\n<strong>Parte 1<\/strong><br \/>\n<object width=\"425\" height=\"344\"><param name=\"movie\" value=\"http:\/\/www.youtube.com\/v\/Z6s9fq9-hYI&#038;hl=it_IT&#038;fs=1&#038;\"><\/param><param name=\"allowFullScreen\" value=\"true\"><\/param><param name=\"allowscriptaccess\" value=\"always\"><\/param><embed src=\"http:\/\/www.youtube.com\/v\/Z6s9fq9-hYI&#038;hl=it_IT&#038;fs=1&#038;\" type=\"application\/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"425\" height=\"344\"><\/embed><\/object><br \/>\n<\/center><\/p>\n<p><center><br \/>\n<strong>Parte 2<\/strong><br \/>\n<object width=\"425\" height=\"344\"><param name=\"movie\" value=\"http:\/\/www.youtube.com\/v\/B0UAGNdTqgE&#038;hl=it_IT&#038;fs=1&#038;\"><\/param><param name=\"allowFullScreen\" value=\"true\"><\/param><param name=\"allowscriptaccess\" value=\"always\"><\/param><embed src=\"http:\/\/www.youtube.com\/v\/B0UAGNdTqgE&#038;hl=it_IT&#038;fs=1&#038;\" type=\"application\/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"425\" height=\"344\"><\/embed><\/object><br \/>\n<\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Con il Tutorial di oggi impareremo a inviare una e-mail dalla nostra applicazione. Dopo aver inserito l&#8217;indirizzo&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[34,5,4,14,1,23],"class_list":["post-608","post","type-post","status-publish","format-standard","hentry","category-tutorial-pratici","tag-email","tag-objective-c","tag-programmazione","tag-sdk","tag-tutorial-pratici","tag-xcode"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/608","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=608"}],"version-history":[{"count":16,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/608\/revisions"}],"predecessor-version":[{"id":2106,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/608\/revisions\/2106"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=608"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=608"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}