【问题标题】:Nodemailer crashes when sending bigger image in base64在 base64 中发送更大的图像时,Nodemailer 崩溃
【发布时间】:2019-11-20 07:47:05
【问题描述】:

我想在电子邮件中嵌入二维码。这是我现在用来添加附件的代码:

mailOptions.attachments = [{
    filename: 'image.png',
    content: url.split("base64,")[1],
    encoding: 'base64'
}];

如果url等于:

"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgAQMAAADYVuV7AAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAAB9JREFUeAFjgIJRwP+BZM4oh/8/GHygIYd8h45yRgEAaHBnmaA4EHkAAAAASUVORK5CYII=";

但是,当我将其更改为 qrcode 时:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAB0CAYAAABUmhYnAAAAAklEQVR4AewaftIAAAKsSURBVO3BQW7kQAwEwSxC//9yro88NSBIM2sTjIg/WGMUa5RijVKsUYo1SrFGKdYoxRqlWKMUa5RijVKsUYo1SrFGKdYoxRrl4qEkfJNKl4QTlS4JncpJEr5J5YlijVKsUYo1ysXLVN6UhDtUuiS8SeVNSXhTsUYp1ijFGuXiw5Jwh8oTSehUuiS8KQl3qHxSsUYp1ijFGuXij1M5ScJJEjqVv6xYoxRrlGKNcvHHJeFE5SQJkxRrlGKNUqxRLj5M5ZNU7kjCm1R+k2KNUqxRijXKxcuS8E1J6FS6JHQqXRLuSMJvVqxRijVKsUaJPxgkCZ1Kl4QTlb+sWKMUa5RijXLxUBI6lZMk/E8qXRK6JHQqJ0noVLok3KHyRLFGKdYoxRrl4j9TeSIJncoTKl0STlTuUPmkYo1SrFGKNcrFQypdEt6UhCeS0Kl0KneonCThjiR0Kk8Ua5RijVKsUeIPXpSEE5WTJHQqJ0l4QqVLQqdykoROpUvCicqbijVKsUYp1igXH6bSJeFEpUtCp9KpdEk4UXkiCSdJ6FS6JHxSsUYp1ijFGiX+4A9LQqdyRxI6lTuS0Kl0SbhD5YlijVKsUYo1ysVDSfgmlZMknKjckYQ7knCi8knFGqVYoxRrlIuXqbwpCU+odEk4ScI3JaFTeaJYoxRrlGKNcvFhSbhD5X9SOUlCp9IloVPpktCpvKlYoxRrlGKNcjGMSpeEE5UuCScqJyonKp9UrFGKNUqxRrn441S6JNyRhBOVkyR0Kl0S7lB5olijFGuUYo1y8WEq36TSJeEOlS4JnUqn8psUa5RijVKsUS5eloRvSkKn0qm8KQknKp3KNxVrlGKNUqxR4g/WGMUapVijFGuUYo1SrFGKNUqxRinWKMUapVijFGuUYo1SrFGKNUqxRvkHv7QE9MppxbsAAAAASUVORK5CYII=

代码很糟糕,并给我以下错误:

Error: Connection closed
at SMTPConnection.<anonymous> (...\node_modules\nodemailer-smtp-transport\lib\smtp-transport.js:113:29)
...

我相信是因为二维码比较大,然后是第一张图片,但是还是比较小。我尝试了很多方法,但没有什么能给我带来积极的结果。关于如何解决这个问题的任何想法?

【问题讨论】:

  • 转到 ..\node_modules\nodemailer-smtp-transport\lib\smtp-transport.js 并添加到第 100 行 console.error(err);。因此,您将获得下一次调查的错误描述。
  • 我已经完成了,但它似乎从未真正调用过该函数。
  • 是的...尝试在第 127 行添加相同的内容。您是否处理代码中的错误?
  • @AikonMogwai 它也没有进入第 127 行

标签: javascript node.js base64 nodemailer


【解决方案1】:

如果您是从物理位置访问图像而不是使用此代码

var mailOptions = {
attachments: [{'filename': 'image.png','path': '\pathtoimagefile\image.png'}]

如果你是从代码生成二维码而不是

    var qr_png = qr.imageSync('string', {
                    type: 'png'
                })
    var mailOptions = {
    attachments: [{'filename': 'image.png', 'content': qr_png}]

此代码适用于我

注意:我正在使用“qr-image”将文本转换为二维码。

【讨论】:

    猜你喜欢
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多