Как мне заставить мою программу отправлять данные файла журнала клиента с их iPhone / iPad? - PullRequest
3 голосов
/ 12 октября 2011

Я пишу корпоративное клиент-серверное приложение.Клиент представляет собой приложение для iOS, которое использует Cocoa Lumberjack для создания файлов журнала.Эти файлы будут важны для отладки и устранения неполадок клиента.Максимальный размер файла - 1 МБ, хотя его можно уменьшить.

Я планировал закодировать кнопку «файл журнала электронной почты», но не могу понять, как отправить ее в виде вложения.Я полагаю, что мог бы заполнить тело письма всеми моими сообщениями журнала, но это кажется немного уродливым.Что если я хочу сжать файл в нетекстовом формате перед отправкой?Я также подумал о создании веб-службы для загрузки файла журнала на сервер, но это кажется большой работой, так как тогда мне нужно было бы разобраться, кто является файлом журнала, кто есть, и провести некоторую очистку, чтобы сохранить его в чистоте,и т.д.

Конечно, я не первый, кто сталкивается с этой проблемой.Как все остальные делают это?

Заранее благодарим за любую помощь, которую вы можете мне оказать.

1 Ответ

5 голосов
/ 12 октября 2011

Вот некоторый полный рабочий код, который создает электронное письмо, добавляет тело 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:@"logfile.txt"];

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

mailComposer.mailComposeDelegate = self;        
[self presentModalViewController:mailComposer animated:YES];
...