En iOS 3.0 y posterior se debe utilizar la clase MFMailComposeViewController
, y el protocolo MFMailComposeViewControllerDelegate
, que está escondido en el marco MessageUI.
En primer lugar tiene que añadir framework e importación:
#import <MessageUI/MFMailComposeViewController.h>
Entonces, para enviar un mensaje:
MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"My Subject"];
[controller setMessageBody:@"Hello there." isHTML:NO];
if (controller) [self presentModalViewController:controller animated:YES];
[controller release];
continuación, el usuario hace el trabajo y se obtiene la devolución de llamada delegado en el tiempo:
- (void)mailComposeController:(MFMailComposeViewController*)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError*)error;
{
if (result == MFMailComposeResultSent) {
NSLog(@"It's away!");
}
[self dismissModalViewControllerAnimated:YES];
}
Recuerde verificar si el dispositivo está configurado para enviar correos electrónicos:
if ([MFMailComposeViewController canSendMail]) {
// Show the composer
} else {
// Handle the error
}
Awesome post by Mugunth. ¡Buen amigo! – Jordan
Es realmente increíble. Gracias. Diseñé una vista especialmente para aceptar el correo electrónico y el tema del usuario. al implementar el mismo código, vuelve a mostrar una vista algo similar. puedo invocar el método de delegado desde mi evento de presionar un botón en la clase de controlador de vista Gracias por su ayuda, Shibin – smakstr
He descargado el mismo código de muestra pero no he enviado ningún correo. Solo solicita que el correo se envíe correctamente pero no se reciba correo. He intentado agregar el marco de MessageUI que apareció de color rojo por defecto, pero aún así la aplicación no está enviando el correo. Cualquier ayuda en este sentido será muy apreciada. Estoy probando la aplicación en el simulador. –