2011-08-19 12 views
6

Dall'interno della mia applicazione per iPad vorrei invocare l'app di posta elettronica di iPad con testo del corpo personalizzato. Mittenti e soggetto saranno vuoti, l'unico parametro che vorrei impostare è il testo del messaggio e-mail. Come potrei farlo?SDK iOS: come richiamare l'applicazione e-mail?

Grazie!

risposta

5

Dai uno sguardo allo MFMailComposeViewController nella documentazione Apple. Si può usare in questo modo:

MFMailComposeViewController *controller=[[MFMailComposeViewController alloc]init]; 
controller.delegate = self; 
[controller setMessageBody:<#yourBody#> isHTML:<#isHTML#>]; 
[self presentModalViewController:controller animated:YES]; 
[controller release]; 

Non dimenticate di aggiungere #import <MessageUI/MessageUI.h> nel file .h. Chiamerà i metodi nel tuo delegato per farti sapere quando è stato cancellato o l'email è stata inviata (con successo o meno). Fammi sapere se per te va bene.

9

Perché non aprire un compositore di messaggi e-mail all'interno della tua app?

MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init]; 

[mailController setSubject:@"my subject"];     
[mailController setMessageBody:@"my message" isHTML:NO]; 

mailController.mailComposeDelegate = self; 

UINavigationController *myNavController = [myViewController navigationController]; 

if (mailController != nil) { 
    if ([MFMailComposeViewController canSendMail]){ 
     [myNavController presentModalViewController:mailController animated:YES]; 
    } 
} 

[mailController release]; 
5
NSString *body = @"Hello Mail"; 
NSString *mailtoURLString = [NSString stringWithFormat:@"mailto:?body=%@", [body stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailtoURLString]]; 

Oppure, come suggerito Mihai, dare un'occhiata a MFMailComposeViewController che permette di inviare la posta senza lasciare la vostra app.

3

Il seguente metodo è utilizzato per l'invio di posta all'utente.

-(void)sendMail:(UIImage *)image 
{ 
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
    picker.mailComposeDelegate = self; 

    // Set the subject of email 
    [picker setSubject:@"Picture from my iPhone!"]; 

    // Add email addresses 
    // Notice three sections: "to" "cc" and "bcc" 
    [picker setToRecipients:[NSArray arrayWithObjects:@TO mailID1",@TO mailID2", nil]]; 
    [picker setCcRecipients:[NSArray arrayWithObject:@"CC MailID"]]; 
    [picker setBccRecipients:[NSArray arrayWithObject:@"BCC Mail ID"]]; 

    // Fill out the email body text 
    NSString *emailBody = @"I just took this picture, check it out."; 

    // This is not an HTML formatted email 
    [picker setMessageBody:emailBody isHTML:NO]; 

    // Create NSData object as PNG image data from camera image 
    NSData *data = UIImagePNGRepresentation(image); 

    // Attach image data to the email 
    // 'CameraImage.png' is the file name that will be attached to the email 
    [picker addAttachmentData:data mimeType:@"image/png" fileName:@"CameraImage"]; 

    // Show email view 
    [self presentModalViewController:picker animated:YES]; 

    // Release picker 
    [picker release]; 
} 
0
NSString *textToShare = @"http:yourmail.com/"; 

NSArray *objectsToShare = @[textToShare]; 

UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil]; 

NSArray *excludeActivities = @[UIActivityTypeAirDrop,UIActivityTypeSaveToCameraRoll]; 

activityVC.excludedActivityTypes = excludeActivities; 
[activityVC setValue:@"yourmail" forKey:@"subject"]; 

[self presentViewController:activityVC animated:YES completion:nil];