Mobile wallpaper 1Mobile wallpaper 2Mobile wallpaper 3Mobile wallpaper 4Mobile wallpaper 5Mobile wallpaper 6
1100 字
6 分钟
利用Github Codespaces云开发,写一个邮件发送脚本

如果不想在本地下载一大堆编程软件,可以利用Github Codespaces进行云开发,Codespaces上自带了各种开发工具,这里我拿一个邮箱api脚本进行开发举例。

启动 Codespaces 环境#

新建一个Github仓库,找到右上角的加号并新建仓库 命名并创建,我这里取名为Vercel-email-api

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

环境配置与开发#

codespaces已经默认安装了nodejs,我们可以直接开始编写代码。 初始化项目,在终端内输入

npm init -y
npm install nodemailer

在左侧文件树新建 api/send-email.js

写入代码

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看到域名为蓝色勾勾时就成功了,这时候你就可以用自己的域名来调用接口。

本章完

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

利用Github Codespaces云开发,写一个邮件发送脚本
https://blog.yumui.top/posts/git-codespaces-email/
作者
Yu Felix
发布于
2026-04-25
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时