将文本文件附加到电子邮件中

时间:2009-08-07 03:56:54

标签: iphone email attachment

我成功创建了一个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 />,然后从文本文件中得到更多的文本< br /> < br />那里的...破解...所以这实际上没有附加它粘贴在电子邮件文本中的文件...我想附上该文件。

我从stackoverflow上的其他帖子复制/修改了这段代码,我很难在苹果网站上查找信息。注意:我不确定mimeType是什么用于txt文件,因为他们的网站(www.iana.org)不表示txt ...... ???

更新:更改为更新的代码,并感谢您确认“plain”是mimeType的正确选择。

2 个答案:

答案 0 :(得分:7)

这不是一个完整的解决方案,但纯文本的MIME类型是:

text/plain

答案 1 :(得分: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];
相关问题