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

Add base64 encoded image as attachment with MailCore2

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

数据:image/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,请告诉我将图像附加到电子邮件的最有效方法。

看来我的猜测是用适当的 HTML 标记包围数据已经足够了:

发送后立即得到了想要的结果

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

而不只是像这样的 attachmentWithHTMLString 组合数据

MCOAttachment *attachment = [MCOAttachment attachmentWithHTMLString:textAttachment];

其中 textAttachment 包含“”。

我想这已经是最有效的方法了,但我将答案悬而未决,以防万一有人有更好的解决方案。