2009-08-07 65 views
7

Tôi đã tạo thành công tệp txt (tức là tệp tồn tại và mở), tôi muốn đính kèm nó vào email mà tôi tạo thành công (tức là email mở ra và tôi có thể đưa văn bản vào email và gửi nó). Đây là mã tôi hiện có để thực hiện tệp đính kèm:đính kèm tệp văn bản vào email

// Attach a file to the email 
NSString *path = [self dataFilePath:(@"myFile.txt")]; 
NSData *myData = [NSData dataWithContentsOfFile:path]; 
[picker addAttachmentData:myData mimeType:@"text/plain" fileName:@"myFile"]; 

DataFilePath là phương pháp tôi sử dụng để lấy đường dẫn cho tệp, nó hoạt động tốt như tôi thường sử dụng. Đoạn mã trên đặt < br /> < br />, sau đó có văn bản từ tệp văn bản với một vài chi tiết < br /> < br /> ..có trong đó ... do đó, điều này không thực sự đính kèm tập tin dán nó trong văn bản email ... Tôi muốn đính kèm tập tin.

Tôi đã sao chép/sửa đổi mã này từ các bài đăng khác trên stackoverflow và tôi đang gặp khó khăn khi tìm thông tin trên trang web của apple. Lưu ý: Tôi không chắc mimeType là gì đối với một tệp txt, vì trang web của họ (www.iana.org) không biểu thị một txt ... ???

Cập nhật: Đã thay đổi thành mã được cập nhật và Cảm ơn bạn đã xác nhận rằng "đồng bằng" là lựa chọn đúng cho loại mimeType.

Trả lời

7

Đây không phải là một giải pháp hoàn chỉnh, nhưng kiểu MIME cho văn bản đơn giản là:

text/plain
+0

bạn có thể vui lòng giải thích câu trả lời của bạn? – AsifHabib

3

Đây có thể là một vấn đề với ứng dụng email của bạn, và không phải với chương trình của bạn. Tệp văn bản có hiển thị dưới dạng tệp đính kèm trong chế độ xem soạn thư hay không, nhưng sau đó khi bạn nhận được email nằm trong phần chính?

Khi bạn nhận được email, hãy thử thực hiện một nguồn xem trên đó (hoặc xem bản gốc hoặc bất kỳ ứng dụng email nào của bạn gọi nó). Bạn sẽ thấy nội dung như thế này trong email:

--Apple-Mail-1-494911569 
Content-Disposition: attachment; 
    filename=myFile 
Content-Type: text/plain; 
    name=myFile 
Content-Transfer-Encoding: 7bit 

Text of the file here. 

--Apple-Mail-1-494911569 

Nếu bạn thấy điều đó trong email, thì tệp sẽ được đính kèm đúng cách. Có thể ứng dụng email của bạn đang bỏ qua tiêu đề MIME nội dung-Bố cục. Trong thư Gmail và Apple, các phần email giống như ở trên chắc chắn được hiển thị dưới dạng tệp đính kèm.

Đối với những gì nó có giá trị, đây là một số hoàn chỉnh mã làm việc này tạo ra một email, thêm một cơ HTML, thêm một tập tin đính kèm văn bản và gửi cho thấy quan điểm soạn:

NSData *textData = [[self getEmailAttachment] dataUsingEncoding:NSUTF8StringEncoding]; 
NSString *htmlData = [self getEmailBodyHTML]; 

/* Set up the mail compose view and put in the body/attachment */ 
MFMailComposeViewController *mailComposer = [[[MFMailComposeViewController alloc] init] autorelease]; 
[mailComposer setMessageBody:htmlData isHTML:NO]; 
[mailComposer addAttachmentData:textData mimeType:@"text/plain" fileName:@"tripometer_report.csv"]; 

/* Set default subject */ 
[mailComposer setSubject:@"Email subject"]; 

mailComposer.mailComposeDelegate = self;  
[self presentModalViewController:mailComposer animated:YES]; 
Các vấn đề liên quan