JavaScript:是否可以仅使用javaScript将图像附加到电子邮件中?

时间:2015-10-15 12:48:25

标签: javascript email frontend email-attachments

我有一个为iOS iPresent应用程序编写的JavaScript应用程序。它为用户提供了一些计算。最后,结果将被采用并以电子邮件形式发送为纯文本。此行为以下列方式实现:

var emailSubject = 'Subject';

//email template
var emailMessage = '' +

    'Dear Mr. / Mrs.,[BR]' +

    '[BR]' +

    'Lorem ipsum ...' +

    '[BR]' +

    Your result is: '[RESULT]'     
;

以下功能采用电子邮件模板,填充数据,然后打开邮件对话框。

openMailbox: function() {

        var message,
            Message,
            br = '%0D%0A'
        ;

        message = emailMessage
            .replace(/\[BR\]/g, '%0D%0A' )
            .replace(/\[RESULT\]/g, result )
            .replace(/&/, '%26')    

        Message = '' +
            'mailto:' +
            '?subject=' + emailSubject +
            '&body=' + message
        ;

        window.location.href = Message;

    },

此类电子邮件只是一个纯文本。是否有可能以某种方式增强电子邮件的外观?添加一些样式,例如,在其中附加图像或pdf文件,但仅使用JavaScript,HTML,CSS等前端技术?

1 个答案:

答案 0 :(得分:0)

纯粹理论上 - 你可以。但肯定没有最好的主意!

要清楚。电子邮件由几部分组成:

  • 服务标头。这里可以指出发送电子邮件的地址,地址,返回路径,主题,dkim签名,dmarc政治和许多其他。
  • 电子邮件正文。消息本身。
  • 电子邮件附件。

在客户端上,您应该只生成消息正文。好吧,理论上你可以在那里构建整个字母(添加所有需要的标题),然后将其传递给邮件服务器,但很可能它不是一个好的解决方案。

后端是更好的地方,你应该只传递电子邮件正文。

再一次,理论上你可以通过从图像生成一个base 64字符串并将其附加到带有所需标题的字母,理论上你可以添加图像附件到邮件正文,如下所示:

------------F81BD43094AAFAF6EC4AE17F5F68753C
Content-Transfer-Encoding: base64
Content-Type: image/png; filename="facebook.png"
Content-Disposition: inline; charset=utf-8; filename="facebook.png"
Content-ID: <facebook.png>

iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAA9xJREFUeNrEV0toE1EUvUkmxJpEUHQjaFuL9VM34ocWFNEqCrpo60oq
uHNhET8guBDcaEEXgrgRtwoi+Fsp6sZlKYpaSWljqzGmiqS22lKbzudd582beXlvZt70g+Klycz7
nvvOPffmNYaI0NJ+uXNsEq/qFq4Eu80M2cf5o19eG0PaBPg6/7jb5+3J3rCQiMXOfu65/ijW3Hap
M72i/k7TpjpYlEqyCRzU28eGQNYmxOtH9iF0zAXm/XLb3Yo7MqPrMJQfgJHixw6NnnzrrlpIJjV4
21dkCzx/UWABibsp8qc3LvbxdUKbs+Iebl1jA6xpaIRiYfhaXDfJSk1LQN97GbzqRdVzMTgq88Cj
bDA/BJqm0dc659s0reC2UtzEmMofzkJgDELeq6eyLMt505yG7QBlWJyACDJAVXNV/xDU/fbDmJ4E
Yuqc/nhCg2RqifMuOaCbpnAKz1nBc1HRouKBuDMICEqDX9/zMDE6DE2Nq2HJ0jQXdMVMQFnPOnNM
y3QdsAdM3WLqFlNFFJAkrqqiudq5nwg/vryDrqM74diRi5DNpKWo9r4ZgNNXXjIGTNcButzQDfcU
wukxPBRsDhEEW2VoarwE3ec6oP3Q7iiZMgZMzoAdAsPWgEWkKbIT6FO4kHpQrQsHd6yKBvfSmQvf
1YBhmHIKChpQggsh8VjoPNwamX5xLcVJlBgwbQeImAaiCFHUhIoNNn9DY50EODH5G+4/z/E9v5Un
uNAtS9SAYdAa60tXFPzw0S3knVgtAwXnQxFu3euVwul9G27mRTAgxx+U4L5SKxjdk/1QBdQl1gHC
BEEwWFIlMYKUCd54+VMPVKZG3bknpD2ymRoYyT3lh0+ll8Hy2u1yGtIB6g0h4aVYlRHenLs3z8O2
zetDRbdxXT2Uck94u+d1P5zsfsHYcfE0SpFHRzBnfNQhSHU3nPjZDGUHnPgREjpJJgN9zCAsAD3w
a6kxWknwR9DviAI4mcrMGTyZygYOq0kXh6C74EvKQFiOX3jAx149PC0tL30tQ1vXbWFJEEdzdE2I
inzFDURIScVKaiPfyuwqF+WAKoeDk9H3iAZXaSfoAISJMEwDEcCoVvxsVzRNus4oNpsXQ8FyGClM
pxCNj5XnkrpKIFU1oPXl5/joLA7Y1rpv/2zJO59ubovTGdiz94By/NmTRyEhmFMxgb9mGv4H0KAI
fUCx2PwBcYEexm38QqVSAfTf7f8x+MxMhT4K8UQ8dnZwoN/rmBcoRpVx21I1WSV43sa07UyMblDb
fKrdIniN/q82x1wMtZYta313wmnI5UthUwsUvNR74/EfAQYA2LBjPIifyRUAAAAASUVORK5CYII=

但在这种情况下,你不仅要创建字母的主体,还要创建字母本身,它还需要其他标题。像:

Delivered-To: email@email.com
Return-Path: <email@email.com>
From: =?utf-8?B?0JDQu9C10LrRgdCw0L3QtNGA?= <email@email.com>
Subject: =?utf-8?B?YWRhZA==?=

------------F81BD43094AAFAF6EC4AE17F5F68753C
Content-Type: multipart/alternative; boundary="----------30F28BDC77E3693E345BC2E04E6615BC"

------------30F28BDC77E3693E345BC2E04E6615BC
Content-Type: text/html; charset=utf-8
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head></head>
<body><div align=left>MESSAGE BODY</div>
<hr size=1><div align=left style="height:25px">