【发布时间】:2022-07-08 04:19:11
【问题描述】:
使用这些版本
"next": "12.0.7"
"nodemailer": "^6.7.2"
我正在使用 NextJS 构建邮件服务,但遇到了一些问题:
- gmail 不渲染图像(通过将我要渲染的图像作为附件发送来解决)
- 在生产中,邮件服务找不到公用文件夹中的图像
- 在开发环境中发送的邮件完美无缺,但在生产环境中无法渲染图像
我有以下结构
pages
-api
-contact.js
public
-images
-image_name.png
在contact.js中
如建议here
...
mailData = {
from: process.env.THE_EMAIL,
to: req.body.email,
subject: `SOME_SUBJECT`,
attachments: [
{
filename: 'image_name.png',
path: 'public/images/image_name.png',
cid: 'SOME_ID_FOR_NODEMAILER',
}
]}
...
当我在 localhost 中工作时,邮件服务运行良好并且可以找到图像,但是在生产中(使用 Vercel 部署)时却找不到图像。
有什么想法或替代方案吗? 我应该将图像托管在 CDN 中并忘记它吗?
【问题讨论】:
-
您是否找不到它们,或者您的软件找不到它们?
-
软件找不到他们,我收到系统找不到文件的错误
-
你检查过所有者\权限吗?
-
这是否回答了您的问题:Next.js: How to get static assets from within getStaticProps?尝试使用
path.join(process.cwd(), 'public/images/image_name.png')作为图像的路径。
标签: next.js serverless nodemailer