#iphone #objective-c #ios #email #logging
#iPhone #objective-c #iOS #Адрес электронной почты #ведение журнала
Вопрос:
Я пишу корпоративное клиент-серверное приложение. Клиент — это приложение для iOS, которое использует Cocoa Lumberjack для создания файлов журнала. Эти файлы будут необходимы для отладки и устранения неполадок клиента. Размер файла будет не более 1 МБ, хотя можно уменьшить его размер.
Я планировал закодировать кнопку «файл журнала электронной почты», но я не могу понять, как отправить его в виде вложения. Я полагаю, я мог бы заполнить тело письма всеми моими сообщениями журнала, но это кажется немного уродливым. Что делать, если я хочу сжать файл в нетекстовый формат перед отправкой? Я также рассматривал возможность создания веб-службы для загрузки файла журнала на сервер, но это кажется большой работой, так как мне тогда нужно было бы разобраться, чей файл журнала принадлежит кому, и провести какую-то очистку, чтобы сохранить его в чистоте и т. Д.
Конечно, я не первый, кто сталкивается с этой проблемой. Как это делают все остальные?
Заранее спасибо за любую помощь, которую вы можете мне оказать.
Ответ №1:
Вот несколько полных рабочих кодов, которые создают электронное письмо, добавляют текст 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];
Комментарии:
1. Это выглядит великолепно! Я искал это в Google, и все, что я нашел, это сообщения «невозможно выполнить». Спасибо. Я не могу дождаться, чтобы попробовать это.
2. Это действительно решает проблему «как отправлять вложения». Принимая ответ, для тех, кто использует это решение, пожалуйста, обратите внимание, что если вы сообщаете составителю почты isHTML:NO, вы, вероятно, захотите вызвать что-то вроде GetEmailBodyText вместо GetEmailBodyHTML. Еще раз спасибо @jyap!