10

को .txt अटैच किया जा रहा मैं एक .txt दस्तावेज़ फ़ोल्डर में संग्रहीत फ़ाइल है और मैं -sendEmail विधि के शरीर में अगले कोड के साथ MFMailComposeViewController द्वारा भेजना चाहते:MFMailComposeViewController

NSData *txtData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"dataBase" ofType:@"txt"]]; 
     [mail addAttachmentData:txtData mimeType:@"text/plain" fileName:[NSString stringWithFormat:@"dataBase.txt"]]; 

मेल संगीतकार प्रकट होता है मैं देख सकता हूँ मेल बॉडी में लगाव लेकिन मुझे यह मेल अटैचमेंट के बिना प्राप्त होता है। हो सकता है कि यह .txt अटैचमेंट के लिए MIME-type गलत है या इस कोड के साथ कुछ गलत है?

धन्यवाद

उत्तर

25
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0];   
     NSString *txtFilePath = [documentsDirectory stringByAppendingPathComponent:@"abc.txt"]; 
NSData *noteData = [NSData dataWithContentsOfFile:txtFilePath]; 
     MFMailComposeViewController *_mailController = [[MFMailComposeViewController alloc] init]; 
     [_mailController setSubject:[NSString stringWithFormat:@"ABC"]]; 
     [_mailController setMessageBody:_messageBody 
           isHTML:NO]; 
     [_mailController setMailComposeDelegate:self]; 
     [_mailController addAttachmentData:noteData mimeType:@"text/plain" fileName:@"abc.txt"]; 

आशा है कि यह मदद करता है।

+0

धन्यवाद, सहकर्मी! – Alex

+0

@Alexey मेरी खुशी :-) –

3

स्विफ्ट 3 में, आप मेल अनुलग्नक के साथ इस

@IBAction func emailLogs(_ sender: Any) { 
    let allPaths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) 
    let documentsDirectory = allPaths.first! 
    let pathForLog = documentsDirectory.appending("/application.log") 

    if MFMailComposeViewController.canSendMail() { 
     let mail = MFMailComposeViewController() 
     mail.mailComposeDelegate = self; 
     mail.setToRecipients(["[email protected]"]) 
     mail.setSubject("Application Logs") 
     mail.setMessageBody("Please see attached", isHTML: true) 

     if let fileData = NSData(contentsOfFile: pathForLog) { 
      mail.addAttachmentData(fileData as Data, mimeType: "text/txt", fileName: "application.log") 
     } 

     self.present(mail, animated: true, completion: nil) 
    } 
} 

तरह भेज सकते हैं और फिर एक परिणाम पर संगीतकार नियंत्रक खारिज

func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) { 
    controller.dismiss(animated: true, completion: nil) 
} 

इस प्रतिनिधि

MFMailComposeViewControllerDelegate 
की सदस्यता के लिए सुनिश्चित करें
संबंधित मुद्दे