Tiene que confiar en el iOS que el MFMailComposeResult
que se devuelve en mailComposeController:didFinishWithResult:error:
es correcto. El simulador simula ese resultado; no se envía el correo real aunque dice MFMailComposeResultSent
.
El tutorial mencionado pasan por alto algo importante: La primera cosa que debe hacer antes de utilizar MFMailComposeViewController
es comprobar [MFMailComposeViewController canSendMail]
. Eso devolverá NO
, si el usuario no ha configurado el correo en su dispositivo. Si debe soportar una versión iOS 3.0 antes de la forma correcta es comprobar si existe la clase MFMailComposeViewController
:
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil)
{
if ([mailClass canSendMail])
{
[self displayComposerSheet];
}
else
{
[self launchMailAppOnDevice];
}
}
else
{
[self launchMailAppOnDevice];
}
El canSendMail-problema sólo se puede probar en un dispositivo real, sin embargo. Se bloqueará si no marca canSendMail y el usuario no tiene una cuenta de correo configurada.
Necesita un dispositivo real. – Seunghoon