2012-02-01 81 views
2

我试图将我的pdf附加到应用内邮件中。应用内邮件显示带有pdf的图标,但不会发送。我不知道为什么......在应用邮件中附加pdf文件

下面的代码:

- (void)openInEmail { 

    if ([MFMailComposeViewController canSendMail]) { 

     MFMailComposeViewController *viewController = [[MFMailComposeViewController alloc] init]; 
     viewController.mailComposeDelegate = self; 

     [viewController setSubject:@"Stundenplan 1A"]; 

     NSArray *sysPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *docDirectory = [sysPaths objectAtIndex:0]; 
     NSString *filePath = [NSString stringWithFormat:@"%@/Stundenplan_1A.pdf", docDirectory]; 

     NSMutableData *data=[NSMutableData dataWithContentsOfFile:filePath]; 

     [viewController addAttachmentData:data mimeType:@"text/pdf" fileName:@"Stundenplan_1A.pdf"]; 

     [self presentModalViewController:viewController animated:YES]; } 
} 

任何想法?

+0

有一点需要注意,PDF的mimeType是application/pdf,而不是text/pdf。这可能是问题所在。 – 2012-02-01 18:37:10

+0

没有没有解决它:( – AmiiQo 2012-02-01 18:57:30

+0

这个PDF文件是多大? – 2012-02-01 19:03:32

回答

0

你试过吗?

NSString *filePath = [documentsDirectory stringByAppendingFileComponent:@"%@/Stundenplan_1A.pdf"]; 

NSString *filePath = [NSString stringWithFormat:@"%@/Stundenplan_1A.pdf", docDirectory]; 

而不是NSMutableData,而不是你可以用NSData的

NSData *data = [NSData dataWithContentsOfFile:file]; 
+0

我正要说用“的NSString *文件路径= [[一个NSBundle mainBundle] pathForResource:@” Stundenplan_1A“ofType:@‘PDF’];”但它返回的确切一样的东西他 – 2012-02-01 19:02:38

+0

不工作:( – AmiiQo 2012-02-01 19:09:55

0

更改MIME类型这样的尝试。

NSURL *url = [NSURL URLWithString:pdfURL]; 
NSData *pdfData = [NSData dataWithContentsOfURL:url]; 
[mailComposeView addAttachmentData:pdfData mimeType:@"application/pdf" fileName:@"CheckList.pdf"]; 
+0

仍无法正常工作,如果我发送邮件到我自己,我得到一个空的电子邮件 – AmiiQo 2012-02-02 14:54:01

+1

现在它与该代码:的NSString *路径= [[一个NSBundle mainBundle] pathForResource:@“Stundenplan_1A” ofType:@“pdf”]; NSData * myData = [NSData dataWithContentsOfFile:path]; [viewController addAttachmentData:myData mimeType:@“application/pdf”fileName:@“Stundenplan_1A.pdf”]; – AmiiQo 2012-02-02 14:59:44

+0

是的,我也尽管你的pdf位置。 NSLog的路径,可能是你没有正确地获得路径。文件不包含在那里。无论如何,你解决了它! – 2016-04-07 19:16:33