• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

T#004 – Inviare una e-mail

By Redazione | on 2 Novembre 2009 | 10 Comments
Senza categoria

T004_Mail Con il Tutorial di oggi impareremo a inviare una e-mail dalla nostra applicazione. Dopo aver inserito l’indirizzo del destinatario, l’oggetto e il testo della mail, basterà premere il pulsante “Invia” per far aprire l’applicazione nativa Mail presente in tutti gli iPhone con tutti i campi, passati dalla nostra applicazione, pronti per l’invio al destinatario scelto.

Aprite Xcode e create un nuovo progetto. Dalla solita finestra scegliete il template “View-based Application” e cliccate su “Choose“. Nel campo “Save As” inserite il nome per il programma, ad esempio inviaMail, scegliete la posizione per il vostro progetto, quindi salvate.

Si aprirà la finestra principale di Xcode. Aprite il file dell’interfaccia MailViewController.h e inserite il seguente codice:

#import 

@interface MailViewController : UIViewController {
	IBOutlet UITextField *txtA;
	IBOutlet UITextField *txtOggetto;
	IBOutlet UITextView *txtTesto;
	
}

-(void)invia:(id)sender;

@end

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’istruzione IBOutlet. Abbiamo inoltre dichiarato il metodo “invia” che andremo poi a collegare ad un pulsante creato anch’esso in IB.

A questo punto aprite il file di implementazione della nostra classe MailViewController.m e inserite il codice per il metodo dichiarato nel file .h :

-(void)invia:(id)sender{
	NSString *stringaMail = [NSString stringWithFormat:@"mailto:?to=%@&subject=%@&body=%@", [[txtA text] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding], [[txtOggetto text] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding], [[txtTesto text]  stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
	
	[[UIApplication sharedApplication] openURL:[NSURL URLWithString:stringaMail]];

}

Qui non facciamo altro che creare una stringa utilizzando il formato classico del “mailto” usato in HTML per l’invio delle e-mail passando nel modo corretto i campi inseriti dall’utente tramite l’interfaccia grafica: il destinatario, l’oggetto e il testo della mail. Questi vengono infatti prelevati dalle due UITextField e dall’UITextView dichiarati in precedenza e che andremo a creare tramite Interface Builder a breve.

Ricordate di inserire inoltre il metodo per la chiusura della tastiera, se non volete che una volta aperta rimanga nell’interfaccia utente nascondendo eventuali altre sue parti:

// Metodo per far chiudere la tastiera
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
	[textField resignFirstResponder];
	return YES;
}

A questo punto non ci resta che aprire il file MailViewController.xib per creare la nostra interfaccia grafica e i rispettivi collegamenti con la classe.

Trascinate nella View i seguenti oggetti:

  • N. 2 UITextField
  • N. 1 UITextView
  • N. 3 UILabel
  • N. 1 UIButton

Modificate la loro posizione e le loro proprietà in modo da ottenere una vista simile a quella mostrata in figura:


IB_Mail

(Ricordate di mettere la spunta sulla proprietà “Editable” della UITextView, che usiamo per semplice comodità al posto di una terza UITextField).

Cliccate quindi su File’s Owner e dalla finestra “Connection” collegate txtA con la UITextField dove andrà inserito il destinatario, txtOggetto con quella dove si inserirà l’oggetto della mail e txtTesto con la UITextView (editabile) dove l’utente inserirà il testo vero e proprio della mail.

Collegate quindi il metodo Invia: con il pulsante creato facendo attenzione a selezionare “Touch Up Inside” una volta rilasciato il mouse sull’UIButton.

Ricordare infine di collegare, come già visto nel Tutorial 02, gli outlet delle UIText con File’s Owner per far sparire la tastiera quando non serve.

A questo punto salvate, tornate a Xcode e cliccate su “Build and Run” per testare la vostra applicazione.

Tenete presente che occorre avere l’applicazione Mail con un account di posta configurato per una corretta esecuzione dell’applicazione che funzionerà perfettamente se installato direttamente su iPhone. Nella prossima immagine il programma in esecuzione.


T004_Mail

Video Tutorial

by David Pollak


Parte 1


Parte 2

Share this story:
  • tweet

Tags: emailObjective-cprogrammazionesdkTutorial PraticiXcode

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • Microservizi per logiche applicative di grandi dimensioni

    27 Luglio 2016 - 0 Comment
  • Con Xcode 6.3 arriva il Crash Log Organizer

    26 Febbraio 2015 - 0 Comment
  • Xcode-project-generator: uno script per creare velocemente progetti Xcode

    21 Ottobre 2014 - 1 Comment

Author Description

10 Responses to “T#004 – Inviare una e-mail”

  1. 26 Novembre 2009

    T#012 – Inviamo e-mail dalle nostre Applicazioni | devAPP

    […] tutorial “T#004 – Inviare una e-mail” avevamo visto come inviare una mail da iPhone, passando destinatari, oggetto e corpo del […]

  2. 12 Marzo 2010

    devAPP | Impara a programmare il tuo iPhone | devAPP

    […] Tutorial 04 (invio di una mail tramite sharedApplication) […]

  3. 13 Marzo 2010

    iManu

    Tanto per iniziare voglio complimentarmi per i tutorial, veramente ben fatti e sopratutto utili.

    Ho provato a fare questa App, tutto funziona tranne una cosa: il trucco per far chiudere la tastiera. Cioè, sui due oggetti “UITextField” funziona correttamente ma sul oggetto “UITextView” no, premendo return il cursore passa alla riga successiva.
    Nel codice si scrive:

    // Metodo per far chiudere la tastiera
    -(BOOL)textFieldShouldReturn:(UITextField *)textField{
    [textField resignFirstResponder];
    return YES;
    }

    Viene apertamente fatto riferimento alla “UITextField”, dove funziona, ma per la UITextView??? Non è possibile chiudere la tastiera? Quindi sarebbe meglio mettere il tasto “invia” nella parte alta della pagina in modo che non venga coperto?

  4. 29 Marzo 2010

    Video Tutorial di programmazione iPhone SDK (in italiano) | devAPP

    […] Con il Tutorial di oggi impareremo a inviare una e-mail dalla nostra applicazione. Dopo aver inserito l’indirizzo del destinatario, l’oggetto e il testo della mail, basterà premere il pulsante “Invia” per far aprire l’applicazione nativa Mail presente in tutti gli iPhone con tutti i campi, passati dalla nostra applicazione, pronti per l’invio al destinatario scelto. (visualizza l’articolo completo) […]

  5. 13 Maggio 2010

    vitto

    rinnovo la domanda del commento precedente..?

  6. 4 Giugno 2010

    fabrizio

    ciao,
    ho trovato questo in rete e funziona:

    – (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
    {
    if ( [ text isEqualToString: @”\n” ] ) {
    [ textView resignFirstResponder ];
    return NO;
    }
    return YES;
    }

  7. 23 Novembre 2010

    Fulvio

    Come mai per usare il metodo “-(BOOL)textFieldShouldReturn:(UITextField *)textField”, non si deve adottare il protocollo “UITextFieldDelegate”???

  8. 6 Dicembre 2010

    devAPP – Tutorial Set #1 - iPhone Italia – Il blog italiano sull'Apple iPhone 4, iPhone 3GS e 3G

    […] (Vai al tutorial completo) […]

  9. 11 Gennaio 2012

    Nicola

    Ciao volevo sapere come faccio a capire se funziona o meno…. io utilizzo solo il simulatore e alla pressione del Button “invia” non mi fa nulla…..

  10. 15 Aprile 2012

    andrea

    Complimenti, molto utile.
    Sarebbe il massimo aggiornare tutto all ultima release di Xcode

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO