如果不想在本地下载一大堆编程软件,可以利用Github Codespaces进行云开发,Codespaces上自带了各种开发工具,这里我拿一个邮箱api脚本进行开发举例。
启动 Codespaces 环境
新建一个Github仓库,找到右上角的加号并新建仓库
命名并创建,我这里取名为Vercel-email-api

创建完毕后,开启Codespaces,或者你也可以点击左上角三条横杠,点击codespaces,并
选择刚刚创建的仓库。
进入编辑器,稍等片刻,浏览器会弹出一个与本地 VS Code 一模一样的界面。

环境配置与开发
codespaces已经默认安装了nodejs,我们可以直接开始编写代码。 初始化项目,在终端内输入
npm init -ynpm install nodemailer
在左侧文件树新建 api/send-email.js

写入代码
import nodemailer from 'nodemailer';
export default async function handler(req, res) { // 仅允许 POST 请求 if (req.method !== 'POST') { return res.status(405).json({ error: 'Method not allowed' }); } const { to, subject, text, html } = req.body;
// 1. 创建传输器(使用环境变量保护隐私) const transporter = nodemailer.createTransport({ host: process.env.EMAIL_HOST, port: Number(process.env.EMAIL_PORT) || 465, secure: true, // 使用 SSL auth: { user: process.env.EMAIL_USER, pass: process.env.EMAIL_PASS, // 邮箱授权码 }, });
try { // 2. 发送邮件 const info = await transporter.sendMail({ from: `"系统通知" <${process.env.EMAIL_USER}>`, to: to, subject: subject, text: text, html: html, });
return res.status(200).json({ success: true, messageId: info.messageId }); } catch (error) { return res.status(500).json({ success: false, error: error.message }); }}处理 .gitignore, 这个文件顾名思义就是忽略文件,被写在里面的文件或目录会被git排除,不会被上传到仓库。
新建 .gitignore 文件,写上 node_modules,防止将依赖包上传。

提交代码到 GitHub
Codespaces 已经自动配置了你的 Git 权限,不需要配置 SSH 或输入密码。
暂存与提交: 在终端输入:
git add .git commit -m "feat: add email api"推送:
git push origin main
连接 Vercel 部署
选择增加项目并选择刚刚新写的项目,若之前Vercel没连接过Github仓库需要登录Github授权一下。


填写环境变量,上面的配置默认即可,若是qq邮箱则EMAIL_HOST=smtp.qq.com
下面的EMAIL_USER就是发件者的邮箱,EMAIL_PASS是授权码,请到自己使用的邮箱里开启并获取,具体方法请在网上自行查询,不同邮箱的获取方式大同小异。
填写完毕后点击下方部署
部署完毕后会给你分配一个域名地址,这个就是我们的接口地址了,我们来调用一下试试。

随便用一个接口测试工具试试,这里我用apifox,选择POST方法,填写对应的字段,收件人,标题与内容。这与我们上面的代码一致。点击发送,可以看到我的邮箱成功收到邮件。
注意接口地址是https://vercel-email-api-iota.vercel.app/api/send-email
Vercel 的 Serverless Functions 遵循文件系统路由
如果你的代码文件是 /api/send-email.js
那么你访问的完整地址必须是:https://你的域名或Vercel给你提供的域名/api/send-email

自定义域名
若你拥有一个域名,可以使用自己的域名,Vercel支持自定义域名。
我们来到域名页面点击添加一个
输入 域名前缀.主体.域名后缀,在这里我的前缀是email2,域名主体是https://git-img.techyumu.us.kg/techyumu,后缀是us.kg。前缀可以随意取名,主体与后缀则是你自己当初购买的无法变动。

保存后我们点开更多,手动设置,记住下面的信息,我们到域名托管商那里填写下方信息,
我这里的域名托管到了Cloudflare。当然你也可以点开旁边的白色按钮自动绑定,会跳转到域名托管处。这里我手动操作一下。

到Cloudflare里找到DNS-记录
点击添加记录
按照上方信息填写,类型是CNAME,名称是email2,目标是Vercel里提供的value。代理状态选择小灰云,点击下方保存。
等待一会让DNS解析成功,当你在Vercel看到域名为蓝色勾勾时就成功了,这时候你就可以用自己的域名来调用接口。

本章完
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时









