Hoy venimos con otro artículo donde explicaremos la manera más simple de envíar emails desde nuestras aplicaciones.
A partir de la versión 3.0 del iPhone OS Apple introdujo un nuevo framework llamado MessageUI para permitir a los desarrolladores envíar emails desde sus aplicaciones de forma fácil y cómoda.
¿Cómo usarlo?
Antes que nada tenemos que incluir el MessageUI framework ya que no viene por defecto.
Una vez incluida el framework, en los ficheros donde vayamos a usar la funcionalidad de email tenemos que incluir las interfaces del framework con:
#import <MessageUI/MessageUI.h>
MessageUI framework nos ofrece una clase llamada MFMailComposeViewController que nos ofrece toda la funcionalidad de email de forma fácil y incluye la interfaz de usuario para edición de emails.
Aquí tenemos un ejemplo de uso (suponemos que estamos en un view controller):
//Creamos el controller encargado de los mails MFMailComposeViewController *m = [[MFMailComposeViewController alloc] init]; //Asignamos los destinos a los que envíar el email [m setToRecipients:[NSArray arrayWithObject:@"info@intelligentconta.com"]]; m.mailComposeDelegate = self; //Mostramos la vista de edición de email [self presentModalViewController:m animated:YES]; [m release];
En el código de arriba una de las partes a detectar es la asignación del delegado y es que en nuestro código donde vayamos a usar el MFMailComposeViewController tenemos que implementar el delegado MFMailComposeViewControllerDelegate para saber si el usuario ha enviado el email, si lo ha cancelado, si ha habido algun error, etc.
El delegado sólo contiene un método:
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
El parámetro MFMailComposeResult nos indicará el resultado con el que ha terminado la composición del email. Se suele usar este método para dependiendo del resultado esconder la vista de edición de email o mostrar un mensaje de error al usuario.
MFMailComposeViewController tiene otras propiedades y métodos para asignar ficheros adjuntos, destinatarios ocultos, etc. Puede consultar la documentación completa aquí.

Esa bendita linea:
···.mailcomposedelegate = self;
como me hizo sufrir por días. Gracias por la explicación!!! Y aquí tienes a un asiduo lector de tus tutoriales. Ojalá no nos abandones. Pocas páginas como la tuya.
Gracias nuevamente!!!