2009-08-07 105 views
7

我成功創建了一個txt文件(即該文件存在並打開),我想將它附加到我成功生成的電子郵件中(即電子郵件打開並且我可以將文本放入電子郵件等,併發送它)。下面是代碼我現在有執行附件:將文本文件附加到電子郵件

// 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是我用得到的路徑文件的方法,因爲我經常用它,它工作正常。上面的代碼提供了一個< br />,然後從文本文件中的文本中再加上幾個< br /> ..breaks in ...所以這實際上並沒有附加文件將其粘貼到電子郵件文本中...我想附加文件。

我從其他文章複製/修改此代碼在stackoverflow和我很難在蘋果的網站上查找信息。注意:我不確定mimeType對於txt文件是什麼,因爲他們的網站(www.iana.org)不表示txt文件。

更新:更改爲更新的代碼,並感謝您確認「普通」是mimeType的正確選擇。

回答

7

這不是一個完整的解決方案,但MIME類型純文本是:

text/plain
+0

請你解釋你的答案? – AsifHabib 2014-05-23 15:15:17

3

這可能是您的電子郵件客戶端的問題,而不是與你的程序。文本文件是否顯示爲郵件撰寫視圖中的附件,但是當您收到電子郵件時,文本文件在主體中?

當您收到電子郵件時,請嘗試在其上查看源代碼(或查看原文,或者您的電子郵件客戶端調用它的任何內容)。你應該看到像這樣的電子郵件:

--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 

如果你看到的是,在電子郵件,則該文件被正確安裝。您的電子郵件客戶端可能會忽略Content-Disposition MIME頭。在GMail和Apple郵件中,上面的電子郵件部分肯定顯示爲附件。

對於它的價值,這裏的一些完整的工作代碼創建一個電子郵件,增加了一個HTML體,增加了文本附件,並將顯示撰寫觀點:

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]; 
相關問題