2017-05-23 1 views
0

J'utilise nodemailer pour envoyer des e-mails avec des images incorporées, mais les images n'apparaissent pas dans le corps du message dans une application client de messagerie (par exemple, thunderbird). Je me doute que cela est arrivé à cause de Content-Transfer-Encoding est réglé sur quoted-printable. Donc, il ajoute des personnages en 3D (qui est pour l'encodage = caractère) dans src propriété de img élément:L'image incorporée ne s'affiche pas dans le corps de l'e-mail

<img src=3D"cid:[email protected]"> 

Comment désactiver quoted-printable encodage en permanence dans nodemailer? J'ai essayé de mettre textEncoding: 'base64' dans les options de message, mais il semble que nodemailer l'ignore.

let message = { 
    from: { 
    name: 'Someone', 
    address: '[email protected]' 
    }, 
    to: { 
    name: sender, 
    address: emailTo.toLowerCase() 
    }, 
    subject: 'Purchased Tickets', 
    html: 'Some text<br><img src="cid:[email protected]"/><br>Some more text<br><img src="cid:[email protected]"/><br>', 
    attachments: ticketList.map((t, i) => ({ 
    filename: `ticket${i + 1}.png`, 
    content: t.qrCode, 
    cid: `${t.ticketNumber}@emailaddress.com` 
    })), 
    encoding: 'base64', 
    textEncoding: 'base64' 
} 

transporter.sendMail(message, (err, info) => { 
    if (err) { 
    console.log(err) 
    } else { 
    console.log(info) 
    } 
}) 

Répondre

0

J'ai le même problème dans certains de mes emails, mais il ne semble pas être lié à Content-Transfert-Encoding. En effet, les images sont affichées sur certains de mes mails avec

Content-Transfer-Encoding: quoted-printable 

mais pas tous ...

+0

Je l'ai essayé avec des applications client de messagerie, et apparemment certains écrans et certains ne le font pas. –