我使用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
答案 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"},
]