一个小白用 AI 搭建 Telegram 临时邮箱机器人的经历
作为一个编程小白,我用 Claude AI 完成了这个项目。这篇文章记录了整个过程,希望能给其他想用 AI 做项目的朋友一些参考。
起因
我之前做了个临时邮箱网站 m2u.io,就是那种可以生成临时邮箱地址的服务。网站上线后,发现很多用户都在用 Telegram,每次要用临时邮箱还得打开网页挺麻烦的。
作为一个不太会写代码的人,我就想:能不能做个 Telegram Bot,让用户直接在 Telegram 里就能用临时邮箱?
然后我想到了 Claude AI。
我的基础
老实说,我编程基础很差:
- PHP 只会改改配置文件
- 数据库只会用 phpMyAdmin 看看表
- Telegram Bot?完全没接触过
- GitHub?能看懂别人的项目但不会自己写
但我会:
- 用 AI 聊天工具(ChatGPT、Claude)
- 看得懂基本的代码逻辑
- 知道怎么把代码上传到服务器
- 遇到问题会 Google 和问 AI
整个开发过程
第一步:跟 AI 说需求
我一开始就很直接地跟 Claude 说:
"我有个临时邮箱网站,有 API 可以生成邮箱和获取邮件。我想做个 Telegram Bot,让用户在 Telegram 里就能用。我不太会写代码,你能帮我做吗?"
Claude 问了我一些问题:
- 你的 API 地址是什么?
- 需要什么参数?
- 想要什么功能?
- 有域名和服务器吗?
我一一回答后,它就开始写代码了。
第二步:创建 Bot
这一步还挺简单的,就是在 Telegram 里找 @BotFather:
- 发
/newbot - 起名字(我叫它 M2U Temporary Email Bot)
- 设置用户名(m2uiobot)
- 拿到一个 Token(一长串字符)
整个过程 5 分钟搞定。这一步不需要写代码,跟着提示操作就行。
第三步:配置数据库
Claude 给了我一个 SQL 文件,让我在 phpMyAdmin 里导入。
我照做了,创建了两张表:
user_dialog- 存用户信息和语言设置user_email- 存用户绑定的邮箱
一开始表结构有问题(chat_id 用的 int),后来 Android 用户用不了,Claude 又给了修复脚本,改成了 BIGINT。
第四步:上传代码
Claude 给了我这些文件:
webhook.php- 主程序includes/core.php- 核心函数languages/zh.php- 中文语言包languages/en.php- 英文语言包languages/ru.php- 俄语语言包
我用 FTP 传到服务器,然后改了一下配置:
- 数据库账号密码
- Bot Token
- API 地址
第五步:设置 Webhook
这步我直接在浏览器里访问了一个地址:
https://api.telegram.org/bot你的TOKEN/setWebhook?url=https://你的域名/webhook.php浏览器显示 {"ok":true} 就说明成功了。
第六步:测试
我在 Telegram 里找到我的 Bot,发了 /start...
然后就报错了。😅
踩过的坑(都是 Claude 帮我解决的)
坑 1:Bot 没反应
问题:发消息给 Bot,完全没回复
怎么解决的:
- 我跟 Claude 说"Bot 没反应"
- Claude 让我检查 Webhook 状态(给了个链接)
- 发现 Webhook 有错误
- Claude 让我在代码里加日志
- 看日志发现是数据库连接错误
- 改了数据库密码就好了
坑 2:Android 用户用不了
问题:iPhone 用户能正常用,Android 用户点按钮没反应
怎么解决的:
- 我跟 Claude 说"有人反馈说 Android 用不了"
- Claude 问我数据库表结构
- 我截图发给它
- Claude 说 chat_id 字段太小,会溢出
- 它给了个 SQL 修复脚本
- 我在 phpMyAdmin 里运行了
- 问题解决
坑 3:按钮匹配不上
问题:有些用户点按钮没反应
怎么解决的:
- 我告诉 Claude"有用户说按钮不管用"
- Claude 说可能是按钮文本匹配的问题
- 它改了代码,用模糊匹配代替精确匹配
- 我替换了代码文件
- 所有人都能用了
坑 4:想加频道订阅功能
需求:我想让用户关注我的频道才能用 Bot
怎么做的:
- 我直接跟 Claude 说"我想让用户先关注频道才能用"
- Claude 问我频道地址
- 它改了代码,加了频道验证逻辑
- 还给我加了个"里程碑庆祝"功能(订阅数到整数就自动发庆祝消息)
- 我照着教程配置了一下
- 功能上线
坑 5:想支持多语言
需求:用户有外国人,想支持英文和俄语
怎么做的:
- 告诉 Claude"能不能支持多语言"
- Claude 问我要支持哪些语言
- 我说中文、英文、俄语
- 它生成了 3 个语言包文件
- 还加了自动识别用户语言的功能
- 我翻译了一下英文和俄语(用的 Google 翻译😂)
- 上传,搞定
我学到的经验
1. 跟 AI 说话要清楚
不要说"帮我做个 Bot",要说:
- 我想做什么
- 我已经有什么
- 我遇到了什么问题
- 我试过什么方法
越详细越好,AI 才能给出准确的方案。
2. 不懂就问,别装懂
我遇到不懂的就直接问 Claude:
- "这段代码是干什么的?"
- "为什么要这样写?"
- "BIGINT 和 int 有什么区别?"
Claude 都会耐心解释,我也慢慢学会了一些基础知识。
3. 一步一步来
不要一次性做太多功能。我是这样的顺序:
- 先让 Bot 能回复消息
- 再加邮箱生成功能
- 然后加刷新邮件功能
- 再加频道订阅验证
- 最后加多语言支持
每一步都测试通过再进行下一步。
4. 保存好代码
每次改代码前,我都会:
- 把旧文件改名备份(比如 webhook.php.backup)
- 然后再上传新文件
- 出问题就能快速恢复
5. 看日志很重要
Claude 教我在代码里加日志:
error_log("这里出错了:" . $error_message);然后去服务器看 error_log 文件,就能知道哪里出问题了。
现在的功能
经过一个多星期的折腾,Bot 现在有这些功能:
- ✅ 自动生成临时邮箱
- ✅ 刷新收件箱
- ✅ 查看邮件内容
- ✅ 多语言支持(中英俄)
- ✅ 频道订阅验证
- ✅ 里程碑庆祝
- ✅ iOS 和 Android 都能用
成本
整个项目的成本很低:
- 服务器:用的原来网站的服务器,0 元
- 域名:用的原来的域名,0 元
- 时间成本:断断续续花了 1 周左右
如果从零开始:
- 买个虚拟主机:5-10 美元/月
- 域名:10 美元/年
- Claude/ChatGPT:20 美元/月(可选,免费版也够用)
总共 100 美元以内就能搞定。
给其他小白的建议
1. 别怕,AI 真的能帮你
我之前也觉得做 Bot 很难,但用了 AI 后发现,只要你会描述需求,AI 基本都能帮你实现。
2. 先从简单的开始
不要一上来就想做很复杂的功能。先做个能发消息的 Bot,然后慢慢加功能。
3. 学会看错误信息
遇到错误不要慌,复制错误信息给 AI 看,它会告诉你怎么解决。
4. 多测试
每改一次代码都要测试,特别是:
- 不同的设备(iOS、Android)
- 不同的语言
- 不同的场景
5. 加个用户群
我建了个 Telegram 群,用户遇到问题可以反馈。这样我就知道哪里需要改进了。
一些技术细节(给稍微懂一点的人)
虽然我是小白,但通过这个项目也学到了一些东西:
数据库字段类型很重要
Telegram 的 chat_id 是个很大的数字,必须用 BIGINT:
`chat_id` BIGINT NOT NULL用 int 的话会溢出,Android 用户的 ID 特别容易超。
Webhook 比 Polling 好
Webhook 是 Telegram 主动推送消息给你的服务器,实时性好,不占资源。
Polling 是你的程序每隔几秒去 Telegram 拉取消息,会浪费服务器资源。
多语言支持不难
就是把所有文本都放到语言包文件里:
// languages/zh.php
return [
'Welcome' => '欢迎使用!',
'GetEmail' => '获取邮箱'
];
// languages/en.php
return [
'Welcome' => 'Welcome!',
'GetEmail' => 'Get Email'
];然后根据用户语言加载对应的文件就行。
按钮要用模糊匹配
不要写成:
if ($text === '📧 获取邮箱') {
// 只能匹配这一个文本
}要写成:
if (strpos($text, 'email') !== false || strpos($text, '邮箱') !== false) {
// 能匹配多种文本
}这样不同语言、不同平台都能用。
最后想说的
作为一个编程小白,我觉得 AI 真的降低了做项目的门槛。
以前想做个东西,要么花钱请人做,要么自己花很长时间学。现在有了 AI,只要你:
- 有想法
- 会描述需求
- 愿意尝试
- 遇到问题愿意问
基本都能做出来。
这个 Bot 虽然功能不复杂,但对我来说是个很大的突破。从完全不懂 Telegram Bot,到现在能自己改代码、加功能、解决问题,这都是跟 AI 学的。
如果你也想做点什么,但觉得自己不会编程,不妨试试跟 AI 聊聊。说不定你也能做出自己的项目。
项目信息
欢迎使用和反馈!