Идеальное средство для отправки вложения в формате PDF через электронную почту в приложении на iOS - PullRequest
4 голосов
/ 24 февраля 2011

Мне кажется, что я искал часов , пытаясь найти решение, но ничего не получалось.Во всяком случае, вот как мне удалось отправить PDF с URL в виде вложения через электронную почту в приложении для iOS.

-(void)emailDocument:(id)sender {
    MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
    NSString *emailSubject = [NSString localizedStringWithFormat:@"Hi, I'm the subject"];
    [controller setSubject:emailSubject];

    NSString *path = @"http://www.somesite.com/document.pdf";
    NSURL *pdfURL = [NSURL URLWithString:path];
    NSData *pdfData = [NSData dataWithContentsOfURL:pdfURL];
    [controller addAttachmentData:pdfData mimeType:@"application/pdf" fileName:@"documentname.pdf"];

    //[controller setToRecipients:[NSArray arrayWithObject:[NSString stringWithString:@"YourEmail@me.com"]]];
    //[controller setMessageBody:@"Custom messgae Here..." isHTML:NO];

    [self presentModalViewController:controller animated:YES];
    controller.mailComposeDelegate = self;
    [controller release];
}

Так что мой вопрос, есть липотенциальные проблемы с этим?И как мне поступить с ошибкой, проверяя возвращающиеся данные?

Ответы [ 3 ]

4 голосов
/ 24 февраля 2011

Во-первых, вы не включили проверку ошибок, чтобы справиться с любыми проблемами, если данные PDF не могут быть загружены. (Лучшим решением было бы использовать метод NSData dataWithContentsOfURL:options:error: и активно проверять наличие ошибок.)

Кроме того, если данные PDF могут быть достаточно большими, у меня может возникнуть желание использовать NSURLConnection для асинхронной загрузки данных PDF в фоновом режиме, прежде чем пытаться создать электронное письмо, если возможно.

1 голос
/ 24 февраля 2011

Вы должны проверить, что почта включена и настроена перед ее использованием, но это не обязательно должно быть в этом методе.

Если вы имеете в виду проверку ошибки при сбое электронной почты, я подозреваю, что для этого есть методы делегирования. Если почта успешно отправляет сообщение на сервер, но ОС сообщения направлена ​​на несуществующий адрес, адрес «от» должен получить электронное письмо.

0 голосов
/ 05 марта 2013

Я думаю, что было бы хорошо упомянуть этот ответ из другого вопроса здесь, который предоставил некоторый пример кода для проверки ошибок при отправке почты:

...