nodemailer 使用 Sveltekit 的附件(使用 formdata)

问题描述 投票:0回答:0

我正在尝试使用 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'
}

谢谢

nodemailer form-data sveltekit
© www.soinside.com 2019 - 2024. All rights reserved.