emailjs中的附件base64

时间:2016-02-26 06:39:12

标签: javascript image email gmail base64

我使用emailjs发送电子邮件。 我有base64字符串。 当我发送html正文

attachment:
[
   {data:"<html> <body> <img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAFA3PEY8..."> </body> </html>", alternative:true}
]

并非所有电子邮件客户端都显示<img src="base64">(例如gmail web或Outlook)

我想从base64附加一个文件。我该怎么办?

我试过了,但照片损坏了:

attachment:
[
  {data:"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAFA3PEY8...", encoded:true, name:"file.jpeg",type:"image/jpeg"},
]

PS:我的服务器设置:

"host" : "smtp.gmail.com",
"user" : "***@gmail.com",
"password" : "******",
"ssl" : true,
"port" : 465

1 个答案:

答案 0 :(得分:0)

尝试添加没有格式数据的base64字符串(我有同样的问题,但设法以这种方式修复):

attachment:
[
   {data:"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAFA3PEY8...", encoded:true, name:"file.jpeg",type:"image/jpeg"},
]

换句话说,获取没有任何其他内容的数据字符串。您可以使用类似的东西来匹配它:

var data = yourBase64DataUrl.match(/base64,(.+)$/);
var base64String = matches[1];

...

attachment: [
    {data: base64String, encoded:true, name:"file.jpeg",type:"image/jpeg"},
]