电子邮件 API
库
目前我们尚未发布任何 API 包装器,但计划在不久的将来发布。如果您希望在特定编程语言的 API 包装器发布时收到通知,请发送电子邮件至 api@forwardemail.net。目前,您可以在应用程序中使用这些推荐的 HTTP 请求库,或者像以下示例一样直接使用 卷曲。
语言 | 图书馆 |
---|---|
红宝石 | Faraday |
Python | requests |
Java | OkHttp |
PHP | guzzle |
JavaScript | superagent(我们是维护者) |
Node.js | superagent(我们是维护者) |
去 | net/http |
.NET | RestSharp |
基本 URI
当前 HTTP 基本 URI 路径为:https://api.forwardemail.net
。
身份验证
所有端点都要求将 API 密钥 设置为请求的 基本授权 标头的“用户名”值(别名联系人、别名日历 和 别名邮箱 除外,它们使用 生成的别名用户名和密码)。
别担心——如果您不确定这是什么,下面会为您提供示例。
错误
如果发生任何错误,API 请求的响应主体将包含详细的错误消息。
代码 | 姓名 |
---|---|
200 | OK |
400 | 错误的请求 |
401 | 未经授权 |
403 | 禁止 |
404 | 未找到 |
429 | 请求过多 |
500 | 内部服务器错误 |
501 | 未实施 |
502 | 坏网关 |
503 | 暂停服务 |
504 | 网关超时 |
Tip
如果您收到 5xx 状态代码(这不应该发生),请通过 api@forwardemail.net 联系我们,我们将立即帮助您解决问题。
本地化
我们的服务已翻译成超过 25 种不同的语言。所有 API 响应消息均会翻译为检测到的 API 请求用户的最新语言环境。您可以通过传递自定义 Accept-Language
标头来覆盖此设置。欢迎使用本页面底部的语言下拉菜单进行尝试。
分页
Note
自 2024 年 11 月 1 日起,列出域名 和 列出域别名 的 API 端点将默认每页最多显示 1000
条结果。如果您想提前启用此行为,可以将 ?paginate=true
作为额外的查询字符串参数传递给端点查询的 URL。
所有列出结果的 API 端点都支持分页。
只需提供查询字符串属性 page
(以及可选的 limit
)。
属性 page
应为大于或等于 1
的数字。如果您提供的是 limit
(也是一个数字),则最小值为 10
,最大值为 50
(除非另有说明)。
查询字符串参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
page |
不 | 数字 | 返回结果页。如果未指定,page 值将为 1 。必须大于或等于 1 。 |
limit |
不 | 数字 | 每页返回的结果数。如果未指定,则默认为 10 。必须大于或等于 1 ,且小于或等于 50 。 |
为了确定是否有更多结果可用,我们提供了这些 HTTP 响应标头(您可以解析它们以便以编程方式进行分页):
HTTP 响应头 | 例子 | 描述 |
---|---|---|
X-Page-Count |
X-Page-Count: 3 |
可用的总页数。 |
X-Page-Current |
X-Page-Current: 1 |
返回的当前结果页面(例如基于page 查询字符串参数)。 |
X-Page-Size |
X-Page-Size: 10 |
返回的页面结果总数(例如基于limit 查询字符串参数和返回的实际结果)。 |
X-Item-Count |
X-Item-Count: 30 |
所有页面上可用的项目总数。 |
Link |
Link: <https://api.forwardemail.net/v1/emails?page=1>; rel="prev", <https://api.forwardemail.net/v1/emails?page=3>; rel="next", <https://api.forwardemail.net/v1/emails?page=3; rel="last", https://api.forwardemail.net/v1/emails?page=1; rel="first" |
我们提供了一个 Link HTTP 响应标头,您可以按照示例所示进行解析。该标头是 similar to GitHub(例如,如果值不相关或不可用,则不会提供所有值;例如,如果没有其他页面,则不会提供 "next" )。 |
示例请求:
curl https://api.forwardemail.net/v1/domains/example.com/aliases?page=2&pagination=true \
-u API_TOKEN:
日志
检索日志
我们的 API 允许您以编程方式下载您帐户的日志。向此端点提交请求后,系统会处理您帐户的所有日志,并在完成后以附件(Gzip 压缩的 CSV 电子表格文件)的形式通过电子邮件发送给您。
这允许您使用 计划任务 或使用我们的 Node.js 作业调度软件 Bree 创建后台作业,以便随时接收日志。请注意,此端点每天限制 10
个请求。
附件是 email-deliverability-logs-YYYY-MM-DD-h-mm-A-z.csv.gz
的小写形式,电子邮件本身包含已检索日志的简要摘要。您也可以随时从 我的账户 → 日志 下载日志
GET /v1/logs/download
查询字符串参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
domain |
不 | 字符串 (FQDN) | 按完全限定域名 (FQDN) 过滤日志。如果不提供此参数,则系统将检索所有域中的所有日志。 |
q |
不 | 细绳 | 通过电子邮件、域、别名、IP 地址或日期 (M/Y 、M/D/YY 、M-D 、M-D-YY 或 M.D.YY 格式) 搜索日志。 |
bounce_category |
不 | 细绳 | 按特定退回类别搜索日志(例如 blocklist )。 |
response_code |
不 | 数字 | 通过特定的错误响应代码(例如 421 或 550 )搜索日志。 |
示例请求:
curl https://api.forwardemail.net/v1/logs/download \
-u API_TOKEN:
示例 Cron 作业(每天午夜):
0 0 * * * /usr/bin/curl https://api.forwardemail.net/v1/logs/download -u API_TOKEN: &>/dev/null
请注意,您可以使用 Crontab.guru 等服务来验证您的 cron 作业表达式语法。
示例 Cron 作业(每天午夜 并记录前一天的日志):
对于 MacOS:
0 0 * * * /usr/bin/curl https://api.forwardemail.net/v1/logs/download?q=`date -v-1d -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null
对于 Linux 和 Ubuntu:
0 0 * * * /usr/bin/curl https://api.forwardemail.net/v1/logs/download?q=`date --date "-1 days" -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null
帐户
创建帐户
POST /v1/account
身体参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
email |
是的 | 字符串(电子邮件) | 电子邮件 |
password |
是的 | 细绳 | 密码 |
示例请求:
curl -X POST https://api.forwardemail.net/v1/account \
-u API_TOKEN: \
-d "email=user%40gmail.com"
检索帐户
GET /v1/account
示例请求:
curl https://api.forwardemail.net/v1/account \
-u API_TOKEN:
更新帐户
PUT /v1/account
身体参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
email |
不 | 字符串(电子邮件) | 电子邮件 |
given_name |
不 | 细绳 | 名 |
family_name |
不 | 细绳 | 姓 |
avatar_url |
不 | 字符串(URL) | 头像图片链接 |
示例请求:
curl -X PUT https://api.forwardemail.net/v1/account \
-u API_TOKEN: \
-d "email=user%40gmail.com"
别名联系人 (CardDAV)
Note
与其他 API 端点不同,这些端点需要 验证 的“用户名”等于别名用户名,“密码”等于别名生成的密码作为基本授权标头。
Warning
此端点部分尚在开发中,预计将于 2024 年发布。在此期间,请使用我们网站导航栏中“应用”下拉菜单中的 IMAP 客户端。
列出联系人
GET /v1/contacts
即将推出
创建联系人
POST /v1/contacts
即将推出
检索联系人
GET /v1/contacts/:id
即将推出
更新联系人
PUT /v1/contacts/:id
即将推出
删除联系人
DELETE /v1/contacts/:id
即将推出
别名日历 (CalDAV)
Note
与其他 API 端点不同,这些端点需要 验证 的“用户名”等于别名用户名,“密码”等于别名生成的密码作为基本授权标头。
Warning
此端点部分尚在开发中,预计将于 2024 年发布。在此期间,请使用我们网站导航栏中“应用”下拉菜单中的 IMAP 客户端。
列出日历
GET /v1/calendars
即将推出
创建日历
POST /v1/calendars
即将推出
检索日历
GET /v1/calendars/:id
即将推出
更新日历
PUT /v1/calendars/:id
即将推出
删除日历
DELETE /v1/calendars/:id
即将推出
别名邮件 (IMAP/POP3)
Note
与其他 API 端点不同,这些端点需要 验证 的“用户名”等于别名用户名,“密码”等于别名生成的密码作为基本授权标头。
Warning
此端点部分尚在开发中,预计将于 2024 年发布。在此期间,请使用我们网站导航栏中“应用”下拉菜单中的 IMAP 客户端。
请确保您已遵循域名的设置说明。
这些说明可以在我们的常见问题解答部分 你们支持使用 IMAP 接收电子邮件吗? 中找到。
列出并搜索消息
GET /v1/messages
即将推出
创建消息
Note
这不会发送电子邮件——它只会将邮件添加到您的邮箱文件夹中(例如,这与 IMAP APPEND
命令类似)。如果您想发送电子邮件,请参阅下面的 创建出站 SMTP 电子邮件。创建出站 SMTP 电子邮件后,您可以使用此端点将其副本附加到您的别名邮箱中进行存储。
POST /v1/messages
即将推出
检索消息
GET /v1/messages/:id
即将推出
更新消息
PUT /v1/messages/:id
即将推出
删除消息
DELETE /v1/messages:id
即将推出
别名文件夹 (IMAP/POP3)
Tip
以文件夹路径 /v1/folders/:path
为端点的文件夹端点可以与文件夹 ID :id
互换。这意味着您可以通过文件夹的 path
或 id
值来引用该文件夹。
Warning
此端点部分尚在开发中,预计将于 2024 年发布。在此期间,请使用我们网站导航栏中“应用”下拉菜单中的 IMAP 客户端。
列出文件夹
GET /v1/folders
即将推出
创建文件夹
POST /v1/folders
即将推出
检索文件夹
GET /v1/folders/:id
即将推出
更新文件夹
PUT /v1/folders/:id
即将推出
删除文件夹
DELETE /v1/folders/:id
即将推出
复制文件夹
POST /v1/folders/:id/copy
即将推出
发件人:
请确保您已遵循域名的设置说明。
这些说明可在 我的账户 → 域名 → 设置 → 出站 SMTP 配置 找到。您需要确保已设置 DKIM、Return-Path 和 DMARC,以便使用您的域名发送出站 SMTP 邮件。
获取出站 SMTP 电子邮件限制
这是一个简单的端点,它返回一个 JSON 对象,其中包含每个帐户每天 SMTP 出站消息数量的 count
和 limit
。
GET /v1/emails/limit
示例请求:
curl https://api.forwardemail.net/v1/emails/limit \
-u API_TOKEN:
列出出站 SMTP 电子邮件
请注意,此端点不会返回电子邮件的 message
、headers
或 rejectedErrors
的属性值。
要返回这些属性及其值,请使用带有电子邮件 ID 的 检索电子邮件 端点。
GET /v1/emails
查询字符串参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
q |
不 | 字符串(支持正则表达式) | 按元数据搜索电子邮件 |
domain |
不 | 字符串(支持正则表达式) | 按域名搜索电子邮件 |
sort |
不 | 细绳 | 按特定字段排序(以单个连字符 - 为前缀,按该字段的反向排序)。如果未设置,则默认为 created_at 。 |
page |
不 | 数字 | 请参阅Pagination了解更多信息 |
limit |
不 | 数字 | 请参阅Pagination了解更多信息 |
示例请求:
curl https://api.forwardemail.net/v1/emails?limit=1 \
-u API_TOKEN:
创建出站 SMTP 电子邮件
我们创建电子邮件的 API 灵感源自 Nodemailer 的消息选项配置,并充分利用了它。以下所有正文参数请遵循 Nodemailer 消息配置 的规范。
请注意,除了 envelope
和 dkim
(因为我们会自动为您设置)之外,我们支持所有 Nodemailer 选项。出于安全考虑,我们会自动将 disableFileAccess
和 disableUrlAccess
选项设置为 true
。
您应该将 raw
的单一选项与包含标题的原始完整电子邮件一起传递,或者传递下面的单独正文参数选项。
如果在邮件头中发现表情符号,此 API 端点会自动为您编码(例如,主题行 Subject: 🤓 Hello
会自动转换为 Subject: =?UTF-8?Q?=F0=9F=A4=93?= Hello
)。我们的目标是打造一个对开发者极其友好且防伪的电子邮件 API。
POST /v1/emails
身体参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
from |
不 | 字符串(电子邮件) | 发件人的电子邮件地址(必须作为域的别名存在)。 |
to |
不 | 字符串或数组 | “收件人”标题的收件人逗号分隔列表或数组。 |
cc |
不 | 字符串或数组 | “抄送”标头的收件人逗号分隔列表或数组。 |
bcc |
不 | 字符串或数组 | “Bcc”标头的收件人的逗号分隔列表或数组。 |
subject |
不 | 细绳 | 电子邮件的主题。 |
text |
不 | 字符串或缓冲区 | 消息的纯文本版本。 |
html |
不 | 字符串或缓冲区 | 消息的 HTML 版本。 |
attachments |
不 | 大批 | 附件对象数组(参见Nodemailer's common fields)。 |
sender |
不 | 细绳 | “发件人”标题的电子邮件地址(参见Nodemailer's more advanced fields)。 |
replyTo |
不 | 细绳 | “回复”标题的电子邮件地址。 |
inReplyTo |
不 | 细绳 | 该消息所回复的消息 ID。 |
references |
不 | 字符串或数组 | 以空格分隔的列表或消息 ID 数组。 |
attachDataUrls |
不 | 布尔值 | 如果是 true ,则将消息 HTML 内容中的 data: 图像转换为嵌入附件。 |
watchHtml |
不 | 细绳 | Apple Watch 特定的 HTML 版本消息(according to the Nodemailer docs,最新的手表不需要设置此项)。 |
amp |
不 | 细绳 | AMP4EMAIL 特定的 HTML 版本消息(参见 Nodemailer's example)。 |
icalEvent |
不 | 目的 | 用作替代消息内容的 iCalendar 事件(参见 Nodemailer's calendar events)。 |
alternatives |
不 | 大批 | 备选消息内容数组(参见Nodemailer's alternative content)。 |
encoding |
不 | 细绳 | 文本和 HTML 字符串的编码(默认为 "utf-8" ,但也支持 "hex" 和 "base64" 编码值)。 |
raw |
不 | 字符串或缓冲区 | 要使用的自定义生成的 RFC822 格式的消息(而不是由 Nodemailer 生成的消息 - 参见 Nodemailer's custom source)。 |
textEncoding |
不 | 细绳 | 强制用于文本值的编码("quoted-printable" 或 "base64" )。默认值为检测到的最接近的值(对于 ASCII,使用 "quoted-printable" )。 |
priority |
不 | 细绳 | 电子邮件的优先级(可以是 "high" 、"normal" (默认)或 "low" )。请注意,"normal" 值不会设置优先级标头(这是默认行为)。如果设置了 "high" 或 "low" 值,则 X-Priority 、X-MSMail-Priority 和 Importance 标头将设置为 will be set accordingly。 |
headers |
不 | 对象或数组 | 要设置的附加标头字段的对象或数组(参见Nodemailer's custom headers)。 |
messageId |
不 | 细绳 | “Message-ID”标头的可选 Message-ID 值(如果未设置,将自动创建默认值 - 请注意该值应为 adhere to the RFC2822 specification)。 |
date |
不 | 字符串或日期 | 可选的日期值,如果解析后缺少日期标头,则将使用此值;否则,如果未设置,则将使用当前 UTC 字符串。日期标头不能比当前时间提前超过 30 天。 |
list |
不 | 目的 | List-* 标头的可选对象(参见 Nodemailer's list headers)。 |
示例请求:
curl -X POST https://api.forwardemail.net/v1/emails \
-u API_TOKEN: \
-d "from=alias@example.com" \
-d "to=user%40gmail.com" \
-d "subject=test" \
-d "text=test"
示例请求:
curl -X POST https://api.forwardemail.net/v1/emails \
-u API_TOKEN: \
-d "raw=`cat file.eml`"
检索出站 SMTP 电子邮件
GET /v1/emails/:id
示例请求:
curl https://api.forwardemail.net/v1/emails/:id \
-u API_TOKEN:
删除出站 SMTP 电子邮件
当且仅当当前状态为 "pending"
、"queued"
或 "deferred"
之一时,删除电子邮件会将状态设置为 "rejected"
(并且随后不会在队列中处理该邮件)。我们可能会在电子邮件创建和/或发送 30 天后自动清除邮件,因此您应该在客户端、数据库或应用程序中保留一份已发送 SMTP 邮件的副本。如果需要,您可以在数据库中引用我们的电子邮件 ID 值,该值会从 创建电子邮件 和 检索电子邮件 端点返回。
DELETE /v1/emails/:id
示例请求:
curl -X DELETE https://api.forwardemail.net/v1/emails/:id \
-u API_TOKEN:
个域名
Tip
以域名 /v1/domains/:domain_name
作为端点的域名端点可以与域名 ID :domain_id
互换。这意味着您可以通过域名的 name
或 id
值来引用该域名。
列出域
Note
自 2024 年 11 月 1 日起,列出域名 和 列出域别名 的 API 端点将默认每页最多显示 1000
条结果。如果您想提前启用此行为,可以将 ?paginate=true
作为额外的查询字符串参数传递给端点查询的 URL。更多详情,请参阅 分页。
GET /v1/domains
查询字符串参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
q |
不 | 字符串(支持正则表达式) | 按名称搜索域名 |
name |
不 | 字符串(支持正则表达式) | 按名称搜索域名 |
sort |
不 | 细绳 | 按特定字段排序(以单个连字符 - 为前缀,按该字段的反向排序)。如果未设置,则默认为 created_at 。 |
page |
不 | 数字 | 请参阅Pagination了解更多信息 |
limit |
不 | 数字 | 请参阅Pagination了解更多信息 |
示例请求:
curl https://api.forwardemail.net/v1/domains \
-u API_TOKEN:
创建域
POST /v1/domains
身体参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
domain |
是的 | 字符串(FQDN 或 IP) | 完全限定域名(“FQDN”)或 IP 地址 |
team_domain |
不 | 字符串(域 ID 或域名;FQDN) | 自动将此域分配给来自其他域的同一团队。这意味着来自此域的所有成员都将被分配为团队成员,并且 plan 也将自动设置为 team 。如有必要,您可以将其设置为 "none" 以明确禁用此功能,但这不是必需的。 |
plan |
不 | 字符串(可枚举) | 计划类型(必须是 "free" 、"enhanced_protection" 或 "team" ,默认为 "free" 或用户当前的付费计划(如果是)) |
catchall |
不 | 字符串(分隔的电子邮件地址)或布尔值 | 创建默认的 catch-all 别名,默认为 true (如果是 true ,则使用 API 用户的电子邮件地址作为收件人;如果是 false ,则不会创建 catch-all)。如果传递的是字符串,则它是一个以分隔符分隔的收件人电子邮件地址列表(以换行符、空格和/或逗号分隔)。 |
has_adult_content_protection |
不 | 布尔值 | 是否在此域上启用垃圾邮件扫描程序成人内容保护 |
has_phishing_protection |
不 | 布尔值 | 是否在此域上启用垃圾邮件扫描程序钓鱼保护 |
has_executable_protection |
不 | 布尔值 | 是否在此域上启用垃圾邮件扫描程序可执行保护 |
has_virus_protection |
不 | 布尔值 | 是否在此域上启用垃圾邮件扫描程序病毒防护 |
has_recipient_verification |
不 | 布尔值 | 全局域默认是否要求别名收件人单击电子邮件验证链接才能让电子邮件流过 |
ignore_mx_check |
不 | 布尔值 | 是否忽略域名的 MX 记录检查以进行验证。这主要适用于拥有高级 MX 交换配置规则,并且需要保留现有 MX 交换并转发到我们的 MX 交换的用户。 |
retention_days |
不 | 数字 | 0 和 30 之间的整数,对应于成功投递或永久错误后存储出站 SMTP 电子邮件的保留天数。默认值为 0 ,这意味着出于安全考虑,出站 SMTP 电子邮件会被立即清除并屏蔽。 |
bounce_webhook |
不 | 字符串 (URL) 或布尔值 (false) | 您选择的 http:// 或 https:// webhook URL,用于发送退回 webhook。我们将向此 URL 提交 POST 请求,其中包含有关出站 SMTP 故障(例如软故障或硬故障)的信息,以便您管理订阅者并以编程方式管理出站电子邮件。 |
max_quota_per_alias |
不 | 细绳 | 此域名上别名的最大存储配额。请输入一个将由 bytes 解析的值,例如“1 GB”。 |
示例请求:
curl -X POST https://api.forwardemail.net/v1/domains \
-u API_TOKEN: \
-d domain=example.com \
-d plan=free
检索域
GET /v1/domains/example.com
示例请求:
curl https://api.forwardemail.net/v1/domains/example.com \
-u API_TOKEN:
验证域记录
GET /v1/domains/example.com/verify-records
示例请求:
curl https://api.forwardemail.net/v1/domains/example.com/verify-records \
-u API_TOKEN:
验证域 SMTP 记录
GET /v1/domains/example.com/verify-smtp
示例请求:
curl https://api.forwardemail.net/v1/domains/example.com/verify-smtp \
-u API_TOKEN:
列出全域通用密码
GET /v1/domains/example.com/catch-all-passwords
示例请求:
curl https://api.forwardemail.net/v1/domains/example.com/catch-all-passwords \
-u API_TOKEN:
创建全域通用密码
POST /v1/domains/example.com/catch-all-passwords
身体参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
new_password |
不 | 细绳 | 您的自定义新密码,用于全域通用密码。请注意,如果您希望获取随机生成的强密码,则可以将此字段留空,或者在 API 请求正文中完全不填写。 |
description |
不 | 细绳 | 仅用于组织目的的描述。 |
示例请求:
curl BASE_URL/v1/domains/example.com/catch-all-passwords \
-u API_TOKEN:
移除全域通用密码
DELETE /v1/domains/example.com/catch-all-passwords/:token_id
示例请求:
curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/catch-all-passwords/:token_id \
-u API_TOKEN:
更新域
PUT /v1/domains/example.com
身体参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
smtp_port |
不 | 字符串或数字 | 用于配置 SMTP 转发的自定义端口(默认为 "25" ) |
has_adult_content_protection |
不 | 布尔值 | 是否在此域上启用垃圾邮件扫描程序成人内容保护 |
has_phishing_protection |
不 | 布尔值 | 是否在此域上启用垃圾邮件扫描程序钓鱼保护 |
has_executable_protection |
不 | 布尔值 | 是否在此域上启用垃圾邮件扫描程序可执行保护 |
has_virus_protection |
不 | 布尔值 | 是否在此域上启用垃圾邮件扫描程序病毒防护 |
has_recipient_verification |
不 | 布尔值 | 全局域默认是否要求别名收件人单击电子邮件验证链接才能让电子邮件流过 |
ignore_mx_check |
不 | 布尔值 | 是否忽略域名的 MX 记录检查以进行验证。这主要适用于拥有高级 MX 交换配置规则,并且需要保留现有 MX 交换并转发到我们的 MX 交换的用户。 |
retention_days |
不 | 数字 | 0 和 30 之间的整数,对应于成功投递或永久错误后存储出站 SMTP 电子邮件的保留天数。默认值为 0 ,这意味着出于安全考虑,出站 SMTP 电子邮件会被立即清除并屏蔽。 |
bounce_webhook |
不 | 字符串 (URL) 或布尔值 (false) | 您选择的 http:// 或 https:// webhook URL,用于发送退回 webhook。我们将向此 URL 提交 POST 请求,其中包含有关出站 SMTP 故障(例如软故障或硬故障)的信息,以便您管理订阅者并以编程方式管理出站电子邮件。 |
max_quota_per_alias |
不 | 细绳 | 此域名上别名的最大存储配额。请输入一个将由 bytes 解析的值,例如“1 GB”。 |
示例请求:
curl -X PUT https://api.forwardemail.net/v1/domains/example.com \
-u API_TOKEN:
删除域
DELETE /v1/domains/:domain_name
示例请求:
curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name \
-u API_TOKEN:
邀请了
接受域名邀请
GET /v1/domains/:domain_name/invites
示例请求:
curl https://api.forwardemail.net/v1/domains/:domain_name/invites \
-u API_TOKEN:
创建域名邀请
POST /v1/domains/example.com/invites
身体参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
email |
是的 | 字符串(电子邮件) | 邀请加入域成员列表的电子邮件地址 |
group |
是的 | 字符串(可枚举) | 将用户添加到域成员资格的组(可以是 "admin" 或 "user" 之一) |
示例请求:
curl -X POST https://api.forwardemail.net/v1/domains/example.com/invites \
-u API_TOKEN: \
-d "email=user%40gmail.com" \
-d group=admin
Important
如果受邀用户已经是邀请他们的管理员所属的任何其他域的接受成员,则系统将自动接受邀请,而不会发送电子邮件。
移除域名邀请
DELETE /v1/domains/:domain_name/invites
身体参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
email |
是的 | 字符串(电子邮件) | 要从域成员列表中删除的电子邮件地址 |
示例请求:
curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/invites \
-u API_TOKEN:
名成员
更新域成员
PUT /v1/domains/example.com/members/:member_id
身体参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
group |
是的 | 字符串(可枚举) | 用于将用户更新为域成员的组(可以是 "admin" 或 "user" 之一) |
示例请求:
curl -X PUT https://api.forwardemail.net/v1/domains/example.com/members/:member_id \
-u API_TOKEN:
移除域成员
DELETE /v1/domains/:domain_name/members/:member_id
示例请求:
curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/members/:member_id \
-u API_TOKEN:
别名
生成别名密码
请注意,如果您不通过电子邮件发送说明,则用户名和密码将以 { username: 'alias@yourdomain.com', password: 'some-generated-password' }
格式出现在成功请求的 JSON 响应正文中。
POST /v1/domains/example.com/aliases/:alias_id/generate-password
身体参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
new_password |
不 | 细绳 | 用于别名的自定义新密码。请注意,如果您希望获取随机生成的强密码,则可以将此字段留空,或者在 API 请求正文中完全省略。 |
password |
不 | 细绳 | 别名的现有密码,用于在不删除现有 IMAP 邮箱存储的情况下更改密码(如果您不再拥有现有密码,请参阅下面的 is_override 选项)。 |
is_override |
不 | 布尔值 | 谨慎使用:此操作将完全覆盖现有别名的密码和数据库,并永久删除现有的 IMAP 存储,并完全重置别名的 SQLite 电子邮件数据库。如果您已将现有邮箱关联到此别名,请尽可能进行备份。 |
emailed_instructions |
不 | 细绳 | 用于发送别名密码和设置说明的电子邮件地址。 |
示例请求:
curl -X POST https://api.forwardemail.net/v1/domains/example.com/aliases/:alias_id/generate-password \
-u API_TOKEN:
列出域别名
Note
自 2024 年 11 月 1 日起,列出域名 和 列出域别名 的 API 端点将默认每页最多显示 1000
条结果。如果您想提前启用此行为,可以将 ?paginate=true
作为额外的查询字符串参数传递给端点查询的 URL。更多详情,请参阅 分页。
GET /v1/domains/example.com/aliases
查询字符串参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
q |
不 | 字符串(支持正则表达式) | 按名称、标签或收件人搜索域中的别名 |
name |
不 | 字符串(支持正则表达式) | 按名称搜索域中的别名 |
recipient |
不 | 字符串(支持正则表达式) | 按收件人搜索域中的别名 |
sort |
不 | 细绳 | 按特定字段排序(以单个连字符 - 为前缀,按该字段的反向排序)。如果未设置,则默认为 created_at 。 |
page |
不 | 数字 | 请参阅Pagination了解更多信息 |
limit |
不 | 数字 | 请参阅Pagination了解更多信息 |
示例请求:
curl https://api.forwardemail.net/v1/domains/example.com/aliases?pagination=true \
-u API_TOKEN:
创建新的域别名
POST /v1/domains/example.com/aliases
身体参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
name |
不 | 细绳 | 别名(如果未提供或为空,则生成随机别名) |
recipients |
不 | 字符串或数组 | 收件人列表(必须是换行符/空格/逗号分隔的有效电子邮件地址、完全限定域名(“FQDN”)、IP 地址和/或 webhook URL 的字符串或数组 - 如果未提供或为空数组,则发出 API 请求的用户电子邮件将被设置为收件人) |
description |
不 | 细绳 | 别名描述 |
labels |
不 | 字符串或数组 | 标签列表(必须是以换行符/空格/逗号分隔的字符串或数组) |
has_recipient_verification |
不 | 布尔值 | 要求收件人单击电子邮件验证链接才能使电子邮件流过(如果未在请求正文中明确设置,则默认为域的设置) |
is_enabled |
不 | 布尔值 | 启用或禁用此别名(如果禁用,电子邮件将不会被路由到任何地方,但会返回成功状态代码)。如果传递了值,则会使用 boolean 将其转换为布尔值。 |
error_code_if_disabled |
不 | 数字(250 、421 或 550 ) |
如果 is_enabled 为 false ,且 250 (悄悄投递,例如 blackhole 或 /dev/null )、421 (软拒绝;最多重试约 5 天)或 550 为永久失败并被拒绝,则发送到此别名的邮件将被拒绝。默认为 250 。 |
has_imap |
不 | 布尔值 | 是否启用或禁用此别名的 IMAP 存储(如果禁用,则收到的入站电子邮件将不会存储到 IMAP storage。如果传递了一个值,则使用 boolean 将其转换为布尔值) |
has_pgp |
不 | 布尔值 | 是否使用别名 public_key 为 IMAP/POP3/CalDAV/CardDAV encrypted email storage 启用或禁用 OpenPGP encryption。 |
public_key |
不 | 细绳 | ASCII Armor 格式的 OpenPGP 公钥(click here to view an example;例如 support@forwardemail.net 的 GPG 密钥)。仅当您将 has_pgp 设置为 true 时才适用。Learn more about end-to-end encryption in our FAQ。 |
max_quota |
不 | 细绳 | 此别名的最大存储配额。留空可重置为域当前的最大配额,或输入一个将由 bytes 解析的值(例如“1 GB”)。此值只能由域管理员调整。 |
vacation_responder_is_enabled |
不 | 布尔值 | 是否启用或禁用自动休假响应器。 |
vacation_responder_start_date |
不 | 细绳 | 休假响应程序的开始日期(如果已启用且未在此处设置开始日期,则系统将假定休假响应程序已开始)。我们支持 MM/DD/YYYY 、YYYY-MM-DD 等日期格式,并通过 dayjs 进行智能解析,支持其他日期格式。 |
vacation_responder_end_date |
不 | 细绳 | 休假响应器的结束日期(如果启用但未在此处设置结束日期,则系统将假定休假永不结束并永久响应)。我们支持 MM/DD/YYYY 、YYYY-MM-DD 等日期格式,并通过 dayjs 进行智能解析,支持其他日期格式。 |
vacation_responder_subject |
不 | 细绳 | 休假回复者的纯文本主题,例如“外出办公”。我们使用 striptags 删除此处的所有 HTML 代码。 |
vacation_responder_message |
不 | 细绳 | 休假回复者的纯文本消息,例如“我将休假至二月。”。我们使用 striptags 删除此处的所有 HTML。 |
示例请求:
curl -X POST https://api.forwardemail.net/v1/domains/example.com/aliases \
-u API_TOKEN:
检索域别名
您可以通过 id
或 name
值检索域别名。
GET /v1/domains/:domain_name/aliases/:alias_id
示例请求:
curl https://api.forwardemail.net/v1/domains/:domain_name/aliases/:alias_id \
-u API_TOKEN:
GET /v1/domains/:domain_name/aliases/:alias_name
示例请求:
curl https://api.forwardemail.net/v1/domains/:domain_name/aliases/:alias_name \
-u API_TOKEN:
更新域别名
PUT /v1/domains/example.com/aliases/:alias_id
身体参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
name |
不 | 细绳 | 别名 |
recipients |
不 | 字符串或数组 | 收件人列表(必须是以换行符/空格/逗号分隔的有效电子邮件地址、完全限定域名(“FQDN”)、IP 地址和/或 webhook URL 的字符串或数组) |
description |
不 | 细绳 | 别名描述 |
labels |
不 | 字符串或数组 | 标签列表(必须是以换行符/空格/逗号分隔的字符串或数组) |
has_recipient_verification |
不 | 布尔值 | 要求收件人单击电子邮件验证链接才能使电子邮件流过(如果未在请求正文中明确设置,则默认为域的设置) |
is_enabled |
不 | 布尔值 | 启用或禁用此别名(如果禁用,电子邮件将不会被路由到任何地方,但会返回成功状态代码)。如果传递了值,则会使用 boolean 将其转换为布尔值。 |
error_code_if_disabled |
不 | 数字(250 、421 或 550 ) |
如果 is_enabled 为 false ,且 250 (悄悄投递,例如 blackhole 或 /dev/null )、421 (软拒绝;最多重试约 5 天)或 550 为永久失败并被拒绝,则发送到此别名的邮件将被拒绝。默认为 250 。 |
has_imap |
不 | 布尔值 | 是否启用或禁用此别名的 IMAP 存储(如果禁用,则收到的入站电子邮件将不会存储到 IMAP storage。如果传递了一个值,则使用 boolean 将其转换为布尔值) |
has_pgp |
不 | 布尔值 | 是否使用别名 public_key 为 IMAP/POP3/CalDAV/CardDAV encrypted email storage 启用或禁用 OpenPGP encryption。 |
public_key |
不 | 细绳 | ASCII Armor 格式的 OpenPGP 公钥(click here to view an example;例如 support@forwardemail.net 的 GPG 密钥)。仅当您将 has_pgp 设置为 true 时才适用。Learn more about end-to-end encryption in our FAQ。 |
max_quota |
不 | 细绳 | 此别名的最大存储配额。留空可重置为域当前的最大配额,或输入一个将由 bytes 解析的值(例如“1 GB”)。此值只能由域管理员调整。 |
vacation_responder_is_enabled |
不 | 布尔值 | 是否启用或禁用自动休假响应器。 |
vacation_responder_start_date |
不 | 细绳 | 休假响应程序的开始日期(如果已启用且未在此处设置开始日期,则系统将假定休假响应程序已开始)。我们支持 MM/DD/YYYY 、YYYY-MM-DD 等日期格式,并通过 dayjs 进行智能解析,支持其他日期格式。 |
vacation_responder_end_date |
不 | 细绳 | 休假响应器的结束日期(如果启用但未在此处设置结束日期,则系统将假定休假永不结束并永久响应)。我们支持 MM/DD/YYYY 、YYYY-MM-DD 等日期格式,并通过 dayjs 进行智能解析,支持其他日期格式。 |
vacation_responder_subject |
不 | 细绳 | 休假回复者的纯文本主题,例如“外出办公”。我们使用 striptags 删除此处的所有 HTML 代码。 |
vacation_responder_message |
不 | 细绳 | 休假回复者的纯文本消息,例如“我将休假至二月。”。我们使用 striptags 删除此处的所有 HTML。 |
示例请求:
curl -X PUT https://api.forwardemail.net/v1/domains/example.com/aliases/:alias_id \
-u API_TOKEN:
删除域别名
DELETE /v1/domains/:domain_name/aliases/:alias_id
示例请求:
curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/aliases/:alias_id \
-u API_TOKEN:
加密
即使在免费方案中,我们也允许您免费加密记录。隐私不应该只是一项功能,而应该融入产品的各个方面。应 隐私指南讨论 和 我们的 GitHub 问题 中的强烈要求,我们已添加此功能。
加密 TXT 记录
POST /v1/encrypt
身体参数 | 必需的 | 类型 | 描述 |
---|---|---|---|
input |
是的 | 细绳 | 任何有效的转发电子邮件纯文本 TXT 记录 |
示例请求:
curl -X POST https://api.forwardemail.net/v1/encrypt \
-d "input=user@gmail.com"