iOS SDK: как вызвать приложение электронной почты? - PullRequest
6 голосов
/ 19 августа 2011

Из моего приложения для iPad я бы хотел вызвать приложение электронной почты iPad с собственным текстом. Отправители и тема будут пустыми, единственный параметр, который я хотел бы установить, это текст сообщения электронной почты. Как я мог это сделать?

Спасибо!

Ответы [ 5 ]

9 голосов
/ 19 августа 2011

Почему бы просто не открыть компоновщик сообщений электронной почты внутри приложения?

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 голосов
/ 19 августа 2011
NSString *body = @"Hello Mail";
NSString *mailtoURLString = [NSString stringWithFormat:@"mailto:?body=%@", [body stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailtoURLString]];

Или, как предложил Михай , взгляните на MFMailComposeViewController, который позволяет отправлять почту, не выходя из приложения.

5 голосов
/ 19 августа 2011

Взгляните на MFMailComposeViewController в документации Apple. Вы можете использовать это так:

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

Не забудьте добавить #import <MessageUI/MessageUI.h> в ваш файл .h. Он вызовет методы в вашем делегате, чтобы сообщить вам, когда он был отменен или электронное письмо было отправлено (успешно или нет). Дайте мне знать, если это работает для вас.

3 голосов
/ 19 августа 2011

Следующий метод используется для отправки почты пользователю.

-(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 голосов
/ 17 мая 2017
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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...