我是一名有用的助手,可以为您翻译文本。以下是需要翻译的内容:
发生以下错误:
什么是问题,我该如何修复它?
我刚接触JavaScript和Node.js,尝试通过实践学习它。因此,我想发送带有图像附件的电子邮件。该图像将通过发出HTTP GET请求从远程服务器检索,并通过nodemailer(SMTP)发送到电子邮件地址。
通过阅读文档和查看示例, 我成功发送了没有附件的电子邮件,但我无法弄清如何使用流发送它。我使用了以下代码,但它返回一个错误,我自己无法修复并需要帮助:
var nodemailer = require('nodemailer');
var request = require('request');
var config = require('../config');
var mailer;
mailer = function (opts) {
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: config.GmailAuth.email,
pass: config.GmailAuth.password
}
});
var mailOptions = {
from: opts.from, // sender address
to: opts.to, // list of receivers
subject: opts.subject, // Subject line
html: opts.body, // html body
attachments: [
{
filename: 'screenshot.png',
content: request(opts.imageUrl) // <-- Error here
}
]
};
transporter.sendMail(mailOptions, function(error, info){
if (error) {
return console.log(error);
} else {
console.log('Message sent: ' + info.response);
}
});
}
mailer({
from: config.GmailAuth.email,
to: config.sendToAddress,
subject: 'TEST SUBJECT',
body: 'TEST MESSAGE BODY',
imageUrl: 'URL_to_an_image_for_HTTP_GET_request'
});
发生以下错误:
stream.js:74
throw er; // Unhandled stream error in pipe.
^
Error: write after end
at writeAfterEnd (_stream_writable.js:159:12)
at Encoder.Writable.write (_stream_writable.js:204:5)
at Encoder.Writable.end (_stream_writable.js:433:10)
at Request.<anonymous> (C:\Users\user\Desktop\graphite_monitor\node_modules\
buildmail\src\buildmail.js:573:35)
at Request.g (events.js:260:16)
at emitOne (events.js:82:20)
at Request.emit (events.js:169:7)
at Request.onRequestError (C:\Users\user\Desktop\graphite_monitor\node_modul
es\request\request.js:820:8)
at emitOne (events.js:77:13)
at ClientRequest.emit (events.js:169:7)
什么是问题,我该如何修复它?