使用 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 包含“”。
我想这已经是最有效的方法了,但我将答案悬而未决,以防万一有人有更好的解决方案。
在我的应用程序中,我有一个已经编码为 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 包含“”。
我想这已经是最有效的方法了,但我将答案悬而未决,以防万一有人有更好的解决方案。