1

是否允许将本地存储的 HTML 页面附加到从我的 iOS 应用程序发送的电子邮件中?

什么是正确的 mimeType ?

编辑

这是我的代码不起作用,请指出阻止本地 html 文件附件的问题在哪里。

-(IBAction)share:(id)sender{


NSString *btn_title = [sender titleForState:(UIControlStateNormal)];

 if ([btn_title isEqualToString: @"fb"] ) {


 }else if ([btn_title isEqualToString: @"tw"]){


 }else if ([btn_title isEqualToString: @"email"]){

     if ([MFMailComposeViewController canSendMail])
     {
         MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
         mailer.mailComposeDelegate = self;
         [mailer setSubject:@""];
         NSArray *toRecipients = [NSArray arrayWithObjects:@"", nil];
         [mailer setToRecipients:toRecipients];

         NSString *emailBody = @"";

         NSError * error = nil;
         NSData *htmlData = [NSData dataWithContentsOfFile:@"/hamla.html" options: NSMappedRead error: &error];

         [mailer addAttachmentData:htmlData mimeType:@"text/html" fileName:@"hamla"];

         [mailer setMessageBody:emailBody isHTML:NO];
         [self presentModalViewController:mailer animated:YES];
     }
     else
     {
         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Failure"
                                                         message:@"Your device doesn't support the composer sheet"
                                                        delegate:nil
                                               cancelButtonTitle:@"OK"
                                               otherButtonTitles: nil];
         [alert show];
     }
 }

}

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
    switch (result)
    {
        case MFMailComposeResultCancelled:
            NSLog(@"Mail cancelled: you cancelled the operation and no email message was queued.");
            break;
        case MFMailComposeResultSaved:
            NSLog(@"Mail saved: you saved the email message in the drafts folder.");
            break;
        case MFMailComposeResultSent:
            NSLog(@"Mail send: the email message is queued in the outbox. It is ready to send.");
            break;
        case MFMailComposeResultFailed:
            NSLog(@"Mail failed: the email message was not saved or queued, possibly due to an error.");
            break;
        default:
            NSLog(@"Mail not sent.");
            break;
    }
    // Remove the mail view
    [self dismissModalViewControllerAnimated:YES];
}
4

3 回答 3

0

我不明白为什么会有问题。

mimetype 是“文本/html”。看看这里:

http://reference.sitepoint.com/html/mime-types-full

于 2012-11-10T12:18:00.890 回答
0

@Shymaa Othman 您使用的 MIME 类型是正确的。只需要知道您是否检查过您是否正确定位了您的 html 并获取 NSData 不为空..?如果没有,请在附加到邮件之前尝试此代码。

NSData NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"hamla" ofType:@"html"];

NSData *htmlData = [NSData dataWithContentsOfFile:htmlFile];
于 2012-11-10T15:07:53.043 回答
0

当我使用 isHTML = YES 设置MessageBody 并添加文本附件时,它可以工作。

NSData *stringData = [textBody dataUsingEncoding:NSUTF8StringEncoding];
[mailer addAttachmentData:stringData
                 mimeType:@"text/plain"
                 fileName:@"text_file"];
于 2016-07-08T09:12:28.930 回答