logo
0
1
WeChat Login

TempMail SDK for Go

CNB Go Version Go Module Channels License: GPL v3 Release

何时读本文:想快速了解本 SDK 的能力、安装方式与示例代码时。 需要更深入内容,请跳转到下方文档地图

TempMail SDK for Go 是一套基于 bogdanfinn/tls-client TLS 指纹栈的 Go 临时邮箱 SDK,统一封装了 27 个第三方临时邮箱服务商,所有渠道返回同一份标准化格式。本仓库是 CNB 镜像版本,module path 为:

cnb.cool/Neko_Kernel/TempMail_SDK_To_Go

目录


特性

  • 27 个渠道开箱即用 — 字符串标识、随机顺序与上游 npm / Rust / Python / C 全对齐
  • 统一标准化邮件 — 所有渠道返回 Emailid / from / to / subject / text / html / date / isRead / attachments
  • 真实浏览器 TLS 指纹 — 基于 tls-client 的 Chrome / Firefox / Safari / Edge profile 池,UA 与指纹成对随机
  • 失败自动 fallback — 指定渠道失败时自动打乱其余渠道逐个兜底
  • 可配置重试与超时 — 指数退避,命中网络/超时/4xx/5xx/限流自动重试
  • 零代码环境变量配置 — 代理、超时、跳过 TLS、遥测开关等全部支持 env 覆盖
  • 匿名遥测(可关) — 仅上报操作成败与重试次数,错误串自动脱敏邮箱
  • Token 内化 — 用户无需感知 session / JWT / cookie,SDK 内部维护
  • 可插拔日志 — 基于标准库 log/slog,默认静默,可接 JSON / 自定义 handler

安装

go get cnb.cool/Neko_Kernel/TempMail_SDK_To_Go

要求 Go 1.26.2 或更高。详细安装(离线 / 私服 / vendor)请见 docs/INSTALL.md


快速开始

使用 Client(推荐)

package main

import (
    "fmt"

    tempemail "cnb.cool/Neko_Kernel/TempMail_SDK_To_Go"
)

func main() {
    client := tempemail.NewClient()

    info, err := client.Generate(&tempemail.GenerateEmailOptions{
        Channel: tempemail.ChannelTempmail,
    })
    if err != nil || info == nil {
        panic("create mailbox failed")
    }
    fmt.Println("channel:", info.Channel)
    fmt.Println("email:", info.Email)

    result, err := client.GetEmails(nil)
    if err != nil {
        panic(err)
    }
    fmt.Printf("received %d emails (success=%v)\n", len(result.Emails), result.Success)

    for _, m := range result.Emails {
        fmt.Printf("[%s] %s -> %s : %s\n", m.Date, m.From, m.To, m.Subject)
    }
}

使用函数式 API

// 随机渠道
info, _ := tempemail.GenerateEmail(nil)

// 指定渠道
info, _ = tempemail.GenerateEmail(&tempemail.GenerateEmailOptions{
    Channel: tempemail.ChannelMailTm,
})

// 自定义有效期(仅 tempmail 渠道)
info, _ = tempemail.GenerateEmail(&tempemail.GenerateEmailOptions{
    Channel:  tempemail.ChannelTempmail,
    Duration: 60,
})

// 列出全部渠道
for _, ch := range tempemail.ListChannels() {
    fmt.Println(ch.Channel, ch.Website)
}

// 通过 EmailInfo 方法收件
result, _ := info.GetEmails(nil)

// 或者使用顶层函数 + 自定义重试
result, _ = tempemail.GetEmails(info, &tempemail.GetEmailsOptions{
    Retry: &tempemail.RetryOptions{MaxRetries: 3},
})

详细场景(代理、域名、超时、遥测开关等)见 docs/USAGE.md


支持的渠道

下表顺序与 ListChannels() / 随机尝试顺序一致,与上游 27 渠道阵列对齐。

#渠道标识常量服务商说明
1tempmailChannelTempmailtempmail.ing支持 Duration 自定义有效期(分钟)
2tempmail-cnChannelTempmailCntempmail.cnSocket.IO;Domain 可指定接入域名
3tmpmailsChannelTmpmailstmpmails.comuser_sign Cookie + Next.js Server Action;Domain 选语言路径
4tempmailgChannelTempmailgtempmailg.com无 Cookie 罐;Token 内含 Cookie 与 CSRF;Domain 选语言路径
5ta-easyChannelTaEasyta-easy.comapi-endpoint.ta-easy.comExpiresAt 为毫秒时间戳
610mail-wangtzChannel10mailWangtz10mail.wangtz.cn默认跳过 TLS 校验;后缀 wangtz.cn
710minute-oneChannel10minuteOne10minutemail.oneSSR / JWT + Web API
8linshi-emailChannelLinshiEmaillinshi-email.com
9linshiyouChannelLinshiyoulinshiyou.comNEXUS_TOKEN + Cookie;HTML 分段解析
10mffacChannelMffacmffac.comREST;mailbox id 作 token;24h
11tempmail-lolChannelTempmailLoltempmail.lol支持指定域名
12chatgpt-org-ukChannelChatgptOrgUkmail.chatgpt.org.ukInbox Token 请求头已封装
13temp-mail-ioChannelTempMailIOtemp-mail.io
14awamailChannelAwamailawamail.comSession Cookie 自动管理
15temporary-email-orgChannelTemporaryEmailOrgtemporary-email.orgGET /zh/messages Cookie + XHR
16mail-tmChannelMailTmmail.tmapi.mail.tm;Bearer Token;自动注册
17mail-cxChannelMailCxmail.cxapi.mail.cx OpenAPI;JWT;可选 Domain
18dropmailChannelDropmaildropmail.meGraphQL;Session ID;支持 af_ 令牌
19guerrillamailChannelGuerrillaMailguerrillamail.com公开 JSON API
20maildropChannelMaildropmaildrop.cxREST;过滤 transformer.edu.kg 后缀
21smail-pwChannelSmailPwsmail.pw__session Cookie;RSC/Flight 解析
22boomlifyChannelBoomlifyboomlify.com{UUID}@{域名};REST
23minmailChannelMinmailminmail.appToken 是 JSON(visitorId + ck)
24vip-215ChannelVip215vip.215.imPOST 建箱 + WebSocket;无正文时 synthetic 兜底
25anonboxChannelAnonboxanonbox.netHTML 解析 + mbox 收信
26fake-legalChannelFakeLegalfake.legal/api/inbox/new;可选 Domain
27moaktChannelMoaktmoakt.commok1: + Base64 JSON;tm_session Cookie;HTTPClientNoCookieJar

Token 等认证信息由 SDK 内部自动维护,用户只需关心 Channel / Email / Emails


环境变量速查

变量用途
TEMPMAIL_PROXY全局代理 URL(http / https / socks5)
TEMPMAIL_TIMEOUT全局超时秒数(默认 15)
TEMPMAIL_INSECURE1 / true 跳过 TLS 证书校验
TEMPMAIL_TELEMETRY_ENABLEDfalse / 0 / no 关闭匿名遥测
TEMPMAIL_TELEMETRY_URL自定义遥测上报端点
DROPMAIL_AUTH_TOKEN / DROPMAIL_API_TOKENDropMail af_ 令牌
DROPMAIL_NO_AUTO_TOKEN禁止自动拉取/续期
DROPMAIL_RENEW_LIFETIME续期 lifetime,如 1d

完整说明请阅读 docs/ENV_VARS.md


匿名遥测

默认 开启。SDK 会批量上报每次 generate_email / get_emails 的操作名、渠道、成败、尝试次数与脱敏后的错误摘要(schema_version: 2),内置端点定义于 telemetry.go

关闭方式(任选其一):

export TEMPMAIL_TELEMETRY_ENABLED=false
off := false
tempemail.SetConfig(tempemail.SDKConfig{TelemetryEnabled: &off})

文档地图

文档适用场景
docs/INSTALL.md安装、依赖、Vendor、私服、国内镜像
docs/USAGE.md所有使用场景:建邮 / 收信 / 代理 / 超时 / 日志 / 遥测
docs/API.md完整导出符号参考(准确对应源码)
docs/ENV_VARS.md全部环境变量
docs/SPECIAL_ENV.md特殊渠道(WebSocket / Socket.IO / TLS 例外)
docs/DEPLOY.md作为库嵌入、Docker、CI/CD、版本发布
CONTRIBUTING.md新增 Provider、命名、提交规范
CHANGELOG.md版本变更记录
SECURITY.md安全策略与审计报告

许可证

本项目遵循 GPL-3.0 协议发布。使用、修改、再分发须遵守该协议条款。

About

No description, topics, or website provided.
Language
Go100%