Revision: 51220
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 18, 2011 00:29 by yasirmturk
Initial Code
// Displays an email composition interface inside the application. Populates all the Mail fields. - (void) displayComposerSheet:(NSString *)body { MFMailComposeViewController *tempMailCompose = [[MFMailComposeViewController alloc] init]; tempMailCompose.mailComposeDelegate = self; //[tempMailCompose setToRecipients:[NSArray arrayWithObject:@"[email protected]"]]; //[tempMailCompose setCcRecipients:[NSArray arrayWithObject:@"[email protected]"]]; [tempMailCompose setSubject:@"iPhone App recommendation"]; [tempMailCompose setMessageBody:body isHTML:NO]; [self presentModalViewController:tempMailCompose animated:YES]; [tempMailCompose release]; } // Dismisses the email composition interface when users tap Cancel or Send. Proceeds to update the message field with the result of the operation. - (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { // Notifies users about errors associated with the interface switch (result) { case MFMailComposeResultCancelled: NSLog(@"Result: canceled"); break; case MFMailComposeResultSaved: NSLog(@"Result: saved"); break; case MFMailComposeResultSent: NSLog(@"Result: sent"); break; case MFMailComposeResultFailed: NSLog(@"Result: failed"); break; default: NSLog(@"Result: not sent"); break; } [self dismissModalViewControllerAnimated:YES]; } // Launches the Mail application on the device. Workaround -(void)launchMailAppOnDevice:(NSString *)body{ NSString *recipients = [NSString stringWithFormat:@"mailto:%@?subject=%@", @"[email protected]", @"iPhone App recommendation"]; NSString *mailBody = [NSString stringWithFormat:@"&body=%@", body]; NSString *email = [NSString stringWithFormat:@"%@%@", recipients, mailBody]; email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:email]]; } // Call this method and pass parameters -(void) showComposer:(id)sender{ Class mailClass = (NSClassFromString(@"MFMailComposeViewController")); if (mailClass != nil){ // We must always check whether the current device is configured for sending emails if ([mailClass canSendMail]){ [self displayComposerSheet:sender]; }else{ [self launchMailAppOnDevice:sender]; } }else{ [self launchMailAppOnDevice:sender]; } }
Initial URL
http://yasirmturk.com
Initial Description
Add MessageUI.framework reference then in header file #import <MessageUI/MessageUI.h> #import <MessageUI/MFMailComposeViewController.h> #import <MessageUI/MFMessageComposeViewController.h>
Initial Title
Display Email Composer on iPhone SDK
Initial Tags
iphone
Initial Language
Objective C