电子邮件接口

目前我们还没有发布任何 API 包装器,但我们计划在不久的将来这样做。发送电子邮件至 api@forwardemail.net 如果您想在特定编程语言的 API 包装器发布时收到通知。同时,您可以在应用程序中使用这些推荐的 HTTP 请求库,或者简单地使用 卷曲 如下例所示。

图书馆
红宝石法拉第
Python要求
爪哇好的HTTP
PHP狂饮
JavaScript超级代理 (我们是维护者)
节点.js超级代理 (我们是维护者)
网络/http
.NET休息夏普

当前的 HTTP 基本 URI 路径是: https://api.forwardemail.net.

所有端点都需要您的 API 密钥 设置为请求的“用户名”值 基本授权 标题。不用担心 - 如果您不确定这是什么,下面会为您提供示例。

如果发生任何错误,API 请求的响应正文将包含详细的错误消息。

代码姓名
200OK
400错误的请求
401未经授权
403禁止的
404未找到
429请求过多
500内部服务器错误
501未实现
502错误的网关
503暂停服务
504网关超时
小费: 如果您收到 5xx 状态码(不应该发生),请通过以下方式联系我们 api@forwardemail.net 我们将帮助您立即解决您的问题。

我们的服务被翻译成超过 25 种不同的语言。所有 API 响应消息都将转换为检测到的发出 API 请求的用户的最后一个语言环境。您可以通过传递自定义来覆盖它 Accept-Language 标题。随意使用本页底部的语言下拉菜单尝试一下。

如果您想在分页可用时收到通知,请发送电子邮件 api@forwardemail.net.

检索日志

我们的 API 允许您以编程方式下载您帐户的日志。向此端点提交请求将处理您帐户的所有日志,并将它们作为附件通过电子邮件发送给您(压缩包 压缩的 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 格式)。

示例请求:

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字符串(网址)链接到头像图片

示例请求:

curl -X PUT https://api.forwardemail.net/v1/account \
  -u API_TOKEN: \
  -d "email=user%40gmail.com"

请确保您已按照您的域的设置说明进行操作。这些说明可以在 我的帐户 → 域 → 设置 → 出站 SMTP 配置.您需要确保设置 DKIM、返回路径和 DMARC,以便使用您的域发送出站 SMTP。

列出电子邮件

请注意,此端点不会返回已创建的电子邮件 message, headers, accepted, 也不 rejectedErrors 特性。

要返回这些属性及其值,请使用 检索电子邮件 具有电子邮件 ID 的端点。

该端点最多返回 50 一次结果。如果要查询多个页面,则追加 ?page=NUMBER 在哪里 NUMBER 是一个整数,例如 ?page=1.

GET /v1/emails

查询字符串参数必需的类型描述
q字符串(支持正则表达式)按元数据搜索电子邮件
domain字符串(支持正则表达式)按域名搜索电子邮件
page数字返回结果的页面(默认为 1)
`限制数字每页返回的结果数(默认为 50 – 最大值是 50 最小值是 10)

示例请求:

curl https://api.forwardemail.net/v1/emails \
  -u API_TOKEN:

创建电子邮件

我们用于创建电子邮件的 API 受到并利用了 Nodemailer 的消息选项配置。请遵照 Nodemailer消息配置 对于以下所有身体参数。

请注意,除了 envelopedkim (因为我们会自动为您设置),我们支持所有 Nodemailer 选项。我们自动设置 disableFileAccessdisableUrlAccess 选项 true 出于安全目的。

你应该通过单一选项 raw 使用您的原始完整电子邮件,包括标题 或者 在下面传递单个身体参数选项。

POST /v1/emails

身体参数必需的类型描述
from字符串(电子邮件)发件人的电子邮件地址(必须作为域的别名存在)。
to字符串或数组“收件人”标题的逗号分隔列表或收件人数组。
cc字符串或数组“Cc”标题的逗号分隔列表或收件人数组。
bcc字符串或数组“密件抄送”标头的逗号分隔列表或收件人数组。
subject细绳电子邮件的主题。
text字符串或缓冲区消息的明文版本。
html字符串或缓冲区消息的 HTML 版本。
attachments大批一组附件对象(参见 Nodemailer 的常用字段).
sender细绳“发件人”标题的电子邮件地址(请参阅 Nodemailer 的更高级字段).
replyTo细绳“回复”标题的电子邮件地址。
inReplyTo细绳消息回复的 Message-ID。
references字符串或数组空格分隔的列表或消息 ID 的数组。
attachDataUrls布尔值如果 true 然后转换 data: 将消息的 HTML 内容中的图像嵌入附件。
watchHtml细绳消息的 Apple Watch 特定 HTML 版本(根据 Nodemailer 文档,最新的手表不需要设置)。
amp细绳邮件的 AMP4EMAIL 特定 HTML 版本(请参阅 Nodemailer 的例子).
icalEvent目的用作备选消息内容的 iCalendar 事件(请参阅 Nodemailer 的日历事件).
alternatives大批可选消息内容的数组(请参阅 Nodemailer 的替代内容).
encoding细绳文本和 HTML 字符串的编码(默认为 "utf-8", 但支持 "hex""base64" 编码值)。
raw字符串或缓冲区要使用的自定义生成的 RFC822 格式的消息(而不是由 Nodemailer 生成的消息 - 请参阅 Nodemailer 的自定义源).
textEncoding细绳强制用于文本值的编码(要么 "quoted-printable" 或者 "base64").默认值是检测到的最接近值(用于 ASCII "quoted-printable").
priority细绳电子邮件的优先级(可以是 "high", "normal" (默认),或 "low").请注意,值 "normal" 不设置优先级标头(这是默认行为)。如果一个值 "high" 或者 "low" 被设置,那么 X-Priority, X-MSMail-Priority, 和 Importance 标题 将相应地设置.
headers对象或数组要设置的附加标头字段的对象或数组(请参阅 Nodemailer 的自定义标头).
messageId细绳“Message-ID”标头的可选 Message-ID 值(如果未设置,将自动创建默认值 - 请注意,该值应 遵守RFC2822规范).
date字符串或日期一个可选的日期值,如果在解析后缺少日期标头,将使用该值,否则如果未设置,将使用当前的 UTC 字符串。日期标题不能比当前时间早 30 天以上。
list目的一个可选的对象 List-* 标头(见 Nodemailer 的列表标题).

示例请求:

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`"

检索电子邮件

GET /v1/emails/:id

示例请求:

curl https://api.forwardemail.net/v1/emails/:id \
  -u API_TOKEN:

删除电子邮件

电子邮件删除会将状态设置为 "rejected" (并且随后不在队列中处理它)当且仅当当前状态是其中之一 "pending", "queued", 或者 "deferred".我们可能会在电子邮件创建和/或发送 30 天后自动清除它们——因此您应该在您的客户端、数据库或应用程序中保留一份出站 SMTP 电子邮件的副本。如果需要,您可以在您的数据库中引用我们的电子邮件 ID 值——该值从两者返回 创建电子邮件检索电子邮件 端点。

DELETE /v1/emails/:id

示例请求:

curl -X DELETE https://api.forwardemail.net/v1/emails/:id \
  -u API_TOKEN:

小费: 具有域名称的域端点 /v1/domains/:domain_name 因为它们的路径可以与域的 ID 互换 :domain_id.这意味着您可以通过以下任一方式引用域 name 或者 id 价值。

列出域

GET /v1/domains

查询字符串参数必需的类型描述
q字符串(支持正则表达式)按名称搜索域
name字符串(支持正则表达式)按名称搜索域

示例请求:

curl https://api.forwardemail.net/v1/domains \
  -u API_TOKEN:

创建域

POST /v1/domains

身体参数必需的类型描述
domain是的字符串(FQDN 或 IP)完全限定域名(“FQDN”)或 IP 地址
plan字符串(可枚举)计划类型(必须是 "free", "enhanced_protection", 或者 "team", 默认为 "free" 或用户当前的付费计划(如果有的话)
catchall字符串(分隔的电子邮件地址)或布尔值创建一个默认的包罗万象的别名,默认为 true (如果 true 它将使用 API 用户的电子邮件地址作为收件人,如果 false 不会创建包罗万象的)。如果传递了字符串,则它是用作收件人的电子邮件地址的分隔列表(由换行符、空格和/或逗号分隔)
has_adult_content_protection布尔值是否在此域上启用 Spam Scanner 成人内容保护
has_phishing_protection布尔值是否在此域上启用 Spam Scanner 网络钓鱼防护
has_executable_protection布尔值是否在此域上启用垃圾邮件扫描程序可执行保护
has_virus_protection布尔值是否在此域上启用 Spam Scanner 病毒防护
has_recipient_verification布尔值全局域默认是否要求别名收件人单击电子邮件验证链接以使电子邮件流过
retention_days数字之间的整数 030 对应于成功发送或永久出错后存储出站 SMTP 电子邮件的保留天数。默认为 0,这意味着为了您的安全,出站 SMTP 电子邮件将被立即清除和编辑。

示例请求:

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:

更新域

PUT /v1/domains/example.com

身体参数必需的类型描述
smtp_port字符串或数字为 SMTP 转发配置的自定义端口(默认为 "25")
has_adult_content_protection布尔值是否在此域上启用 Spam Scanner 成人内容保护
has_phishing_protection布尔值是否在此域上启用 Spam Scanner 网络钓鱼防护
has_executable_protection布尔值是否在此域上启用垃圾邮件扫描程序可执行保护
has_virus_protection布尔值是否在此域上启用 Spam Scanner 病毒防护
has_recipient_verification布尔值全局域默认是否要求别名收件人单击电子邮件验证链接以使电子邮件流过
retention_days数字之间的整数 030 对应于成功发送或永久出错后存储出站 SMTP 电子邮件的保留天数。默认为 0,这意味着为了您的安全,出站 SMTP 电子邮件将被立即清除和编辑。

示例请求:

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

删除域邀请

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:

列出域别名

GET /v1/domains/example.com/aliases

查询字符串参数必需的类型描述
q字符串(支持正则表达式)按名称、标签或收件人搜索域中的别名
name字符串(支持正则表达式)按名称搜索域中的别名
recipient字符串(支持正则表达式)按收件人搜索域中的别名

示例请求:

curl https://api.forwardemail.net/v1/domains/example.com/aliases \
  -u API_TOKEN:

创建新的域别名

POST /v1/domains/example.com/aliases

身体参数必需的类型描述
name细绳别名(如果未提供或为空,则会生成随机别名)
recipients字符串或数组收件人列表(必须是换行符/空格/逗号分隔的字符串或有效电子邮件地址数组、完全限定的域名(“FQDN”)、IP 地址和/或 webhook URL——如果未提供或为空数组,则将发出API请求的用户邮箱设置为收件人)
description细绳别名说明
labels字符串或数组标签列表(必须是换行符/空格/逗号分隔的字符串或数组)
has_recipient_verification布尔值要求收件人单击电子邮件验证链接以便电子邮件通过(如果未在请求正文中明确设置,则默认为域的设置)
is_enabled布尔值是否启用或禁用此别名(如果禁用,电子邮件将无法路由到任何地方,但会返回成功的状态代码)。如果传递一个值,则会使用以下方法将其转换为布尔值 布尔值)
has_imap布尔值是否为此别名启用或禁用 IMAP 存储(如果禁用,则收到的入站电子邮件将不会存储到 IMAP 存储。如果传递一个值,则会使用以下方法将其转换为布尔值 布尔值)
has_pgp布尔值是否启用或禁用 OpenPGP 加密 为了 IMAP/POP3 加密电子邮件存储 使用别名' public_key.
public_key细绳ASCII Armor 格式的 OpenPGP 公钥(单击此处查看示例;例如GPG 密钥 support@forwardemail.net)。这仅适用于您有 has_pgp 设置 true. 在我们的常见问题解答中了解有关端到端加密的更多信息.

示例请求:

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布尔值是否启用或禁用此别名(如果禁用,电子邮件将被路由到任何地方,但返回成功的状态代码)
has_imap布尔值是否为此别名启用或禁用 IMAP 存储(如果禁用,则收到的入站电子邮件将不会存储到 IMAP 存储。如果传递一个值,则会使用以下方法将其转换为布尔值 布尔值)
has_pgp布尔值是否启用或禁用 OpenPGP 加密 为了 IMAP/POP3 加密电子邮件存储 使用别名' public_key.
public_key细绳ASCII Armor 格式的 OpenPGP 公钥(单击此处查看示例;例如GPG 密钥 support@forwardemail.net)。这仅适用于您有 has_pgp 设置 true. 在我们的常见问题解答中了解有关端到端加密的更多信息.

示例请求:

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: