我正在尝试使用 nodemailer 从 Sveltekit 中的 +page.server.ts 文件发送邮件,并使用 formdata 接收信息。
这是我的代码+page.server.ts
import type { Actions } from './$types';
import nodemailer from 'nodemailer';
export const actions = {
default: async ({ request }) => {
const data = await request.formData();
const newfile = data.get('file') as File;
const transporter = nodemailer.createTransport({
......
});
// send mail with defined transport object
const info = await transporter.sendMail({
from: '[email protected]', // sender address
to: '[email protected]', // list of receivers
subject: 'WEB Message: ', // Subject line
html: 'testing',
attachments: [
{
filename: 'new_file.svg',
content: await newfile.arrayBuffer
}
]
});
console.log('Message sent: %s', info.messageId);
}
} satisfies Actions;
我的主要问题是我应该如何处理newfile变量的信息?我应该如何在 nodemailer 中发送它?
我已经试过了:
content: newfile
content: newfile.stream
content: newfile.text
content: await newfile.arrayBuffer()
收到的错误是:
TypeError [ERR_INVALID_ARG_TYPE]: The "chunk" argument must be of type string or an instance of Buffer or Uint8Array. Received an instance of ArrayBuffer
at new NodeError (node:internal/errors:399:5)
at _write (node:internal/streams/writable:315:13)
at Writable.end (node:internal/streams/writable:612:17)
at Immediate.<anonymous> (/Users/ben/Development/Sites/outsourcing/node_modules/.pnpm/[email protected]/node_modules/nodemailer/lib/mime-node/index.js:977:46)
at process.processImmediate (node:internal/timers:471:21) {
code: 'ERR_INVALID_ARG_TYPE'
}
谢谢