Я использую простой код клиента SMTP, первый размещен на Google Code по адресу:Base64 кодирование на iPhone, работает в тренажере, ломает на устройстве
http://code.google.com/p/skpsmtpmessage/
Это репо, кажется, пошли не сопровождается, как и владелец проекта теперь работает на яблоке, и, возможно, имеет лучшие дела. Существует форк кода, который в последнее время поддерживается на GitHub, которые вы можете найти по адресу:
http://github.com/kailoa/iphone-smtp/tree/master
У меня возникли проблемы с получением вложений работать на устройстве iPhone, думал странно они работают в тренажер. Мой GitHub комментарий можно найти здесь:
http://github.com/kailoa/iphone-smtp/commit/50cbd49f351c2f0bb3a5ad6aea7736ac82d40af2#comment_27560
Со всем, что в контексте ... мой вопрос: кто-нибудь был в состоянии успешно прикрепить файл (желательно аудиофайл, но любой файл будет делать для теперь) по электронной почте, отправленной с помощью SMTP-клиента на iPhone? Я действительно хочу иметь возможность прикреплять файлы к электронным письмам, которые я отправляю с помощью прямого SMTP-клиента, но до сих пор я еще не нашел какой-либо код, который правильно функционирует и работает, и я не смог успешно написать свой собственный код для выполнения сказал подвиг.
Есть ли причина, по которой файлы будут кодироваться по-разному на iPhone, чем в симуляторе? Потому что, когда я смотрю на исходную строку base64, которая создается в обоих контекстах, они разные. Я просто потерял, почему это так.
Соответствующая часть моего кода заключается в следующем:
NSString* emailBody = @"This is a test email body";
NSDictionary *plainPart = [NSDictionary dictionaryWithObjectsAndKeys:@"text/plain",kSKPSMTPPartContentTypeKey, emailBody,kSKPSMTPPartMessageKey,@"8bit",kSKPSMTPPartContentTransferEncodingKey,nil];
NSString *imgPath = [[NSBundle mainBundle] pathForResource:@"screenshot" ofType:@"png"];
NSData *imgData = [NSData dataWithContentsOfFile:imgPath];
NSDictionary *imgPart = [NSDictionary dictionaryWithObjectsAndKeys:@"image/png;\r\n\tx-unix-mode=0644;\r\n\tname=\"screenshot.png\"", kSKPSMTPPartContentTypeKey, @"attachment;\r\n\tfilename=\"screenshot.png\"", kSKPSMTPPartContentDispositionKey, [imgData encodeBase64ForData],kSKPSMTPPartMessageKey, @"base64",kSKPSMTPPartContentTransferEncodingKey,nil];
testMsg.parts = [NSArray arrayWithObjects:plainPart,imgPart,nil];
Если больше кода или ссылки необходимы, чтобы понять это, я рад продолжать добавлять. Но весь код легко доступен на github, поэтому любой, кто заинтересован в этом, может легко увидеть все.
Благодаря Райан
Спасибо за идею! Я попробовал, и это не исправить проблему, так что следующая попытка. –