Я наткнулся на эту же проблему, и решение было довольно запутанным.Можно вставить изображение в электронное письмо.Проблема в том, что по какой-то странной причине изображение в кодировке base64 не должно содержать новых строк (супер странно! Я знаю).Я предполагаю, что вы используете NSData + Base64 Мэтта Галлахера?И я!Эта категория создает многострочную строку base64.Код в категории:
- (NSString *)base64EncodedString
{
size_t outputLength;
char *outputBuffer =
NewBase64Encode([self bytes], [self length], true, &outputLength);
NSString *result =
[[NSString alloc]
initWithBytes:outputBuffer
length:outputLength
encoding:NSASCIIStringEncoding];
free(outputBuffer);
return result;
}
Заменив третий параметр NewBase64Encode на false, вы получите однострочную строку base64, и это сработало для меня.Я закончил тем, что создал новую функцию (только чтобы ничего не нарушать!) Внутри категории.
- (NSString *)base64EncodedStringSingleLine
{
size_t outputLength;
char *outputBuffer =
NewBase64Encode([self bytes], [self length], false, &outputLength);
NSString *result =
[[NSString alloc]
initWithBytes:outputBuffer
length:outputLength
encoding:NSASCIIStringEncoding];
free(outputBuffer);
return result;
}
Использование этой функции для кодирования NSData UIImage работало нормально.Все почтовые клиенты, которые я тестировал, показывают встроенное изображение.Надеюсь, что это работает для вас!
Редактировать: Как указано в комментариях, это решение является лишь частичным.Изображение будет прикреплено в качестве URI данных в электронном письме.Однако не все почтовые клиенты будут отображать встроенное изображение.