添加base64编码图像作为附件与MailCore2

时间:2017-10-09 11:20:36

标签: objective-c image smtp base64 mailcore2

在我的应用程序中,我有一个已编码为base64的图像

数据:图像/ JPEG; BASE64,...

现在我想将此图片附加到一个构建的电子邮件中,并可以使用MailCore2发送。

我到目前为止的代码是:

MCOMessageBuilder * builder = [[MCOMessageBuilder alloc] init];

...

MCOAttachment *attachment = [MCOAttachment attachmentWithText:textAttachment];
[builder addAttachment:attachment];

NSData * rfc822Data = [builder data];
MCOSMTPSendOperation *sendOperation = [smtpSession sendOperationWithData:rfc822Data];
[sendOperation start:^(NSError *error) {
    ...
}

这已经正确地发送了邮件,除了图像没有作为图像附加,而是作为文本附加(因为我用attachmentWithText附加了它)。

到目前为止,我已经尝试用attachmentWithHTMLString替换它,但结果是相似的(除了它现在与文本正文更加分离的事实)。

我想如果我使用正确的html图像语法包围数据,它可以工作:

<img src='data:image/jpeg;base64,...' />

但也许不是。或者我甚至必须为它构建一个小的html页面?

不幸的是,有关如何发送电子邮件附件的信息,MailCore2文档并不十分详细。

因此,如果有人有使用MailCore2的经验,请告诉我将图像附加到电子邮件的最有效方法。

1 个答案:

答案 0 :(得分:0)

似乎我的猜测是用适当的HTML标签包围数据已经充分发挥了作用:

我发送

时立即得到了预期的结果
<img src='data:image/jpeg;base64,...' />

而不仅仅是与attachmentWithHTMLString结合使用的数据

MCOAttachment *attachment = [MCOAttachment attachmentWithHTMLString:textAttachment];

textAttachment包含&#34;&#34;。

我想这已经是最有效的方式了,但我会保留答案,以防万一有人有更好的解决方案。