2016-04-05 23 views
1

Ich habe Knopf in meiner App, wenn ich öffne, zeigt es mir neue E-Mail-Nachricht mit Attachemnt. Nachdem ich eine E-Mail an meine E-Mail-Adresse gesendet habe, habe ich diese Nachricht und Anhang, aber Anhang enthält den letzten Bildschirm aus meiner App .. Ich möchte diese Nachricht mit Anhang aus unterstützender Datei öffnen. Vielleicht weißt du wo ich einen Fehler haben kann?Wie sende ich E-Mail mit Anhang (Datei PDF) in App iOS?

- (IBAction)showEmail:(id)sender { 

NSString *emailTitle = @"elllo"; 

NSString *messageBody = @"Hi ! \n Below I send you "; 

NSArray *toRecipents = [NSArray arrayWithObject:@"[email protected]"]; 

NSMutableData *pdfData = [NSMutableData data]; 
UIGraphicsBeginPDFContextToData(pdfData, self.view.bounds, nil); 
UIGraphicsBeginPDFPage(); 

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 

UIGraphicsEndPDFContext(); 
MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init]; 

mc.mailComposeDelegate = self; 

[mc setSubject:emailTitle]; 
[mc setMessageBody:messageBody isHTML:NO]; 
[mc addAttachmentData:pdfData mimeType:@"application/pdf" fileName:@"MV.pdf"]; 
[mc setToRecipients:toRecipents]; 

[self presentViewController:mc animated:YES completion:NULL]; 

}

+1

[self.view.layer renderInContext: UIGraphicsGetCurrentContext()]; bedeutet, dass Sie einen Screenshot machen, zeichnen Sie das eigentliche PDF selbst – ogres

+0

OK danke @ogres! Wie kann ich E-Mail mit Anhang (Datei pdf) aus unterstützender Datei senden? – mechu911

+0

Sie können zuerst Datei als NSData lesen und dann diese Daten anhängen – ogres

Antwort

6

Darunter ist richtig sollution:

- (IBAction)showEmail:(id)sender { 

    NSString *emailTitle = @"elllo"; 

    NSString *messageBody = @"Hi ! \n Below I send you "; 

    NSArray *toRecipents = [NSArray arrayWithObject:@"[email protected]"]; 

    NSString *path = [[NSBundle mainBundle] pathForResource:@"MV" ofType:@"pdf"]; NSData *myData 
= [NSData dataWithContentsOfFile: path]; 

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

    mc.mailComposeDelegate = self; 
    [mc setSubject:emailTitle]; 
    [mc setMessageBody:messageBody isHTML:NO]; 
    [mc addAttachmentData:myData mimeType:@"application/pdf" fileName:@"MV.pdf"]; 

    [mc setToRecipients:toRecipents]; 

    [self presentViewController:mc animated:YES completion:NULL]; 

} 
+0

Große Antwort! Das ist es! –