прикрепление текстового файла к электронному письму - PullRequest
7 голосов
/ 07 августа 2009

Я успешно создал текстовый файл (т. Е. Файл существует и открывается), я хотел бы прикрепить его к электронному письму, которое я успешно генерирую (т. Е. Электронное письмо открывается, я могу поместить текст в электронное письмо и т. Д. И отправить его ). Вот код, который у меня сейчас есть для выполнения вложения:

// 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 - это метод, который я использую для получения пути к файлу, он отлично работает, так как я часто его использую. Приведенный выше код помещает

, а затем содержит текст из текстового файла с еще несколькими

... разрывами ... так что на самом деле это не прикрепляет файл вставляет его в текст письма ... Я хотел бы прикрепить файл.

Я скопировал / изменил этот код из других сообщений на stackoverflow, и мне трудно найти информацию на сайте Apple. Примечание: я не уверен, что mimeType для TXT-файла, так как их веб-сайт (www.iana.org) не обозначает TXT ... ???

Обновление: изменен на обновленный код, и спасибо за подтверждение, что «обычный» был правильным выбором для mimeType.

Ответы [ 2 ]

7 голосов
/ 07 августа 2009

Это не полное решение, но MIME-тип для простого текста:

text/plain
3 голосов
/ 06 декабря 2009

Возможно, это проблема вашего почтового клиента, а не вашей программы. Текстовый файл отображается в виде вложения в представлении составления почты, но когда вы получаете электронное письмо, оно отображается в основном тексте?

Когда вы получаете электронное письмо, попробуйте просмотреть его источник (или просмотреть оригинал, или как его называет ваш почтовый клиент). Вы должны увидеть что-то подобное в электронном письме:

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

Если вы видите это в электронном письме, значит, файл прикреплен правильно. Возможно, ваш почтовый клиент игнорирует MIME-заголовок Content-Disposition. В сообщениях 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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...