在Mandrill中发送图像

时间:2014-06-05 19:02:38

标签: node.js express qr-code mailchimp mandrill

尝试使用mandrill通过电子邮件发送QR码。这是我到目前为止所得到的:

db.get(id, function (err, doc) {
  if (err) { fail('Couch', [err, doc]) }
  db.attachment.get(id, 'qr-code.png', function (error, image) {
    // Base64 encode the image.
    var base64 = 'data:image/png;base64,' + new Buffer(image).toString('base64');

到目前为止,我很好。可以在html img标记中使用base64来呈现qr代码,哇喔!我遇到麻烦的是下一个......

    // Email Tickets to client
    mandrill('/messages/send-template', {
      template_name: 'qr-confirm',
      template_content: [],
如果我只是使用merge_vars,那么

template_content应该是空的吗?

      message: {
        to: [{email: doc.email, name: doc.name}],
        from_email: 'events@example.com',
        from_name: 'The Team',
        subject: "QR codes attached",
        tags: ['qr'],
        merge_vars: [{
          rcpt: doc.email,
          vars: [
            { name: "name", content: doc.name },
            { name: "attendee", content: doc.id },
            { name: "purchaser", content: doc.purchaser }
          ]
        }],

好的,我是否同时需要attachmentsimages,或者如果我使用图片会自动附加它们吗?

        attachments: [
          {type: "image/png", name: "qr-code.png", content: base64}
        ],
        images: [
          {type: "image/png", name: "qr-code.png", content: base64}
        ],
      }
    }, function(error, manReply) { console.log(error || manReply) }); // manReply, haha 
  });
});

好的,所有这些,我仍然得到一个破碎的附件。有一个附件,它只是破坏1kb,而不是内联渲染。

任何帮助都会摇滚!

1 个答案:

答案 0 :(得分:4)

好的,问题已解决,只是在内容参数中不包含data:image/png;base64,:)