导入邮箱
通过电子表格、供应商导出文件或粘贴的名单,批量连接数百乃至数千个邮箱。
导入邮箱可以使用邮箱供应商或之前使用的发送工具提供的文件,一次连接多个邮箱。只需提供地址和密码,系统会自动查找服务器、端口和加密方式。
导入文件
打开账户,选择添加账户,然后选择导入邮箱。
上传 CSV、TSV 或 XLSX 文件,或粘贴列表,例如 address:password,每行一个邮箱。
检查预览:系统会自动匹配每一列,你也可以手动重新指定。
开始导入。导入在服务器上运行,因此关闭标签页不会中断。
使用须知
- 每次最多导入 5,000 个邮箱,文件大小上限为 10 MB。
- Google 邮箱需要由 16 个字母组成的应用专用密码。Microsoft 365 和 Outlook.com 邮箱则通过 Microsoft 登录来连接。
- 要为整个域名免去密码输入,可以连接整个 Google Workspace 域名或整个 Microsoft 365 组织。
- 邮箱供应商选项可以使用 API 密钥,直接从你购买邮箱的供应商处读取邮箱。
- 失败的行会按原因分组,你可以在 7 天内修正并重试,无需重新上传。
浏览时的筛选条件、搜索内容和视图选择会保存在浏览器标签页中,刷新或切换页面后仍会保留,并按用户和工作区分别保存。
导入邮箱可以一次连接多个邮箱。打开账户,选择添加账户,然后选择导入邮箱。它会读取邮箱供应商或之前使用的发送工具提供的文件,识别每一列的含义以及各域名的邮件托管位置,并在后台逐行连接邮箱。
只需提供地址和密码。系统会自动查找服务器、端口和加密方式。
另外三种来源完全不需要文件,都可以从同一个添加账户对话框进入:
- 邮箱供应商:使用 API 密钥,直接从你购买邮箱的供应商处读取邮箱。参见从邮箱供应商导入。
- Google > 整个 Workspace 域名:Workspace 超级管理员只需授权 Warmbly 一次,该域名下的每个邮箱即可免密码连接。参见连接整个 Google Workspace 域名。
- Microsoft > 整个组织:全局管理员只需同意授权一次,组织内每个已获许可的邮箱即可连接,无需逐个登录。参见连接整个 Microsoft 365 组织。
这三种方式都会创建与文件导入相同的导入任务:在后台运行,展示相同的进度,并按原因对失败项分组。
- 文件:CSV、TSV 或 XLSX(当前活动工作表),大小不超过 10 MB。CSV 可以用逗号或分号分隔各列;在用逗号表示小数点的地区,电子表格应用通常使用分号作为分隔符。系统会根据表头行判断使用哪一种。
- 粘贴的列表:从电子表格复制的单元格、CSV 文本,或每行一个邮箱,格式为
address:password、address;password或address password。邮箱地址不会包含冒号或分号,因此密码即使包含这些符号,也会被完整读取。
[email protected]:abcdabcdabcdabcd
[email protected]:abcd efgh ijkl mnop每次最多导入 5,000 个邮箱。文件更大时,请拆分后分别导入。
除非首行包含邮箱地址,否则系统会将它视为表头。对话框中的首行为表头选项可以覆盖这一自动判断。
系统会自动将每一列匹配到字段。以下规则按顺序应用,先匹配到的规则优先:
- 之前确认过的映射。 导入文件时,列映射会按完全相同的一组表头保存在工作区中,因此下一个使用相同表头的文件会自动套用映射。
- 表头名称。 系统可以识别 Warmbly 自带模板,以及 Smartlead、Instantly、Saleshandy、Zapmail 和 InboxKit 导出文件中的列名,也支持常见写法,如
smtp_server、app_password、login、From Email等。识别出某种导出格式时,对话框会显示其名称。 - 列中的值。 即使没有表头,系统也能识别邮箱地址列、由 16 个字母组成的 Google 应用专用密码列、
smtp.或imap.主机名列,以及包含587、993等端口号的列。 - Jev:如果实例配置了 TypeSafe,Jev 会处理上述规则仍未匹配的列。Jev 只会看到表头文字和值的特征描述,例如“16 个小写字母”或“主机名”,不会看到实际值。
每一列都可以手动重新指定,也可以设为忽略。密码列会在对话框中遮蔽显示,此后不会再次显示。
| 字段 | 内容 |
|---|---|
email | 邮箱地址。这是唯一必须映射的列 |
name, first_name, last_name | 发件人姓名。未提供时,从地址推导,例如 alex.rivera@ 会变成 Alex Rivera |
password | 邮箱密码 |
app_password | 应用专用密码。对于要求使用应用专用密码的服务商,此字段优先于 password |
smtp_password, imap_password | 仅用于其中一个服务器的密码 |
username, smtp_username, imap_username | 登录名;登录名不是邮箱地址时使用 |
smtp_host, smtp_port, smtp_security | 发件服务器配置,覆盖自动检测结果 |
imap_host, imap_port, imap_security | 收件服务器配置,覆盖自动检测结果 |
daily_limit | 每天发送的营销活动邮件数量 |
min_wait | 两次发送之间的间隔秒数 |
warmup | 开启或关闭预热(yes/no、true/false、on/off) |
warmup_start, warmup_max, warmup_increase, warmup_reply_rate | 预热首日发送量、每日上限、每日递增量和回复百分比 |
reply_to | 回复地址 |
signature | 纯文本签名 |
tags | 标签名称,以逗号、分号或竖线分隔,每行最多 20 个 |
timezone | 邮箱的时区 |
安全方式列接受 SSL、TLS、SSL/TLS 和 STARTTLS,也支持某些导出文件使用的 true/false SSL 列。未提供时,根据端口决定安全方式。
系统会按域名查找一次服务器,依次使用 DNS 和服务商公开的配置:
- 已知的个人邮箱域名,如
gmail.com、outlook.com、yahoo.com、icloud.com等。 - 域名的 MX 记录,可识别 Google Workspace、Microsoft 365、Zoho(包括数据中心所在地区)、GoDaddy、Namecheap Private Email、IONOS、Hostinger、Fastmail、Yahoo、iCloud、Migadu、Purelymail、Rackspace、OVHcloud、Yandex 和 GMX。
- 域名自身的 Mozilla 自动配置文件。
- Thunderbird ISPDB:适用于 Warmbly Cloud,以及设置了
MAILHOST_ISPDB=true的自托管实例。 - RFC 6186 SRV 记录。
预览会为每个域名列出服务商、找到的服务器,以及是否已发布 SPF、DKIM 和 DMARC 记录。smtp_host 和 imap_host 列,以及端口和安全方式列,会覆盖自动检测结果。无法识别服务器的域名需要提供这些列,或在导入后逐行输入服务器信息。
每个邮箱都会标注托管位置和登录方式。API 会通过 mail_host 和 auth_method 返回这些信息。对于尚未记录托管位置的邮箱,例如在引入这些标签之前连接的邮箱,系统会在后台根据其域名进行分类。
| 托管服务商 | 密码要求 | 获取位置 |
|---|---|---|
| Google Workspace、Gmail | 由 16 个字母组成的应用专用密码,空格会自动移除。如果 Workspace 域名已由管理员授权覆盖,则无需密码 | 启用两步验证后,前往 myaccount.google.com/apppasswords。参见 Gmail 和 Google Workspace |
| Microsoft 365、Outlook.com | 无需密码:每个邮箱通过 Microsoft 登录连接;如果域名已有管理员授权,则通过该授权连接 | 该行中的登录按钮 |
| Yahoo Mail | 应用专用密码 | login.yahoo.com/account/security |
| AOL Mail | 应用专用密码 | login.aol.com/account/security |
| iCloud Mail | 应用专用密码 | account.apple.com 中的“登录与安全” |
| Fastmail | 具有 IMAP 和 SMTP 访问权限的应用专用密码 | 设置 > 隐私与安全 > 管理应用专用密码 |
| Yandex Mail | 应用专用密码 | id.yandex.com/security/app-passwords |
| Zoho Mail | 账户密码;开启双因素身份验证时,使用应用专用密码 | 你所在地区的 Zoho Accounts 中,安全 > 应用专用密码 |
| GoDaddy、Namecheap Private Email、IONOS、Hostinger、OVHcloud、Migadu、Purelymail、Rackspace Email、GMX | 邮箱密码 | 服务商的控制面板 |
| Proton Mail | 无法通过这种方式连接 | 参见下方的 Proton Mail |
| 其他服务商 | 邮箱密码 | 向服务商获取。服务器信息来自自动配置、ISPDB、SRV 记录或你提供的列 |
如果 Google 邮箱行的密码不是由 16 个字母组成的应用专用密码,系统会在尝试连接之前就在预览中标记出来:Google 不接受使用账户密码通过 IMAP 和 SMTP 登录。如果实例使用 Google 登录来连接新的 Gmail 邮箱(对应 gmail_oauth_connect,可在 GET /auth/config 中查看),这类行就会像 Microsoft 邮箱行一样等待登录。
等待 Google 登录的行,只有在启用了 Google 邮箱 OAuth 的部署中才会提供登录操作。否则请使用应用专用密码或管理员授权。Microsoft 登录不受这一开关影响。
Microsoft
Exchange Online 已不再接受通过 IMAP 使用密码登录,因此 Microsoft 365 和 Outlook.com 邮箱行会通过 Microsoft 登录连接。导入会将它们暂时标为需要登录,继续处理文件中的其他行。每行都有一个登录按钮,用于打开 Microsoft 登录页面,并预先填好邮箱地址。只要该地址成功连接,无论是通过此行还是其他途径,该行就会完成,导入设置也会应用到邮箱。
Microsoft 365 管理员可以为整个组织同意授权一次,之后每个邮箱只需点击一次即可登录。如果 Microsoft 在登录时显示需要管理员批准,登录一个邮箱面板会显示一个审批链接,你可以将其发给管理员。如果希望完全省去逐个登录,可以改为连接整个组织:其域名下的邮箱行即可直接连接。Microsoft 还宣布,自 2026 年 12 月底起,将默认对现有租户禁用使用基本身份验证的 SMTP AUTH,这也是这些邮箱使用登录授权而非密码连接的另一个原因。
Proton Mail
Proton Mail 不向其他应用提供 IMAP 或 SMTP 登录,只有其 Bridge 提供。如果尝试导入 Proton 邮箱,系统会标记为无法连接。如果自托管实例的工作节点与 Bridge 运行在同一台机器上,可以将 smtp_host 和 imap_host 列及端口映射到 Bridge,并使用 Bridge 自身的密码。参见本地邮件中继。
选择添加账户,然后选择邮箱供应商,选定供应商并粘贴 API 密钥。所有供应商都只需提供这一项。Warmbly 会先向供应商验证密钥,再保存它,列出密钥可访问的邮箱(标记已在工作区中的邮箱),然后导入你选中的邮箱,或导入所有尚未连接的邮箱。
如果一个密钥可访问多个工作区(在 ScaledMail 中称为组织),系统会列出它们的所有邮箱,无需你查找工作区 ID。列表上方的工作区切换器可以将范围缩小到某个工作区,同时显示每个工作区已选中的数量; 选择此工作区中的…… 可以一键选中该工作区所有尚未连接的邮箱。选中需要的邮箱即可,其余邮箱仍保留在供应商处。
| 供应商 | 密钥获取位置 |
|---|---|
| InboxKit | InboxKit 控制台中的设置 > API 与集成 |
| Zapmail | Zapmail 控制台中的设置 > 集成 > API。列表会同时显示 Google 和 Microsoft 邮箱 |
| Mailforge | Mailforge 控制台中的设置 > API 密钥 |
| Infraforge | Infraforge 控制台中的设置 > API 密钥 |
| Maildoso | Maildoso 控制台中的设置 > API 密钥,使用个人访问令牌 |
| Cheap Inboxes | Cheap Inboxes 控制台中的集成 > API,密钥以 ci_live_ 开头 |
| ScaledMail | ScaledMail 控制台中的设置 |
每个供应商账户最多列出 10,000 个邮箱。
- 处理每一行时才读取凭据。 选择邮箱时只会保存选中了哪些邮箱。每行连接时,系统才会向供应商获取该邮箱的密码、应用专用密码和服务器信息,然后按与文件行完全相同的规则处理:Google 邮箱需要供应商持有的应用专用密码,或域名已有管理员授权;Microsoft 邮箱则通过其域名的授权连接。
- 供应商可以代你授权 Warmbly。 如果某行原本需要等待登录,而供应商可以通过其持有的域名管理员邮箱批准应用(InboxKit 支持这种方式),Warmbly 就会请求供应商进行授权:为 Warmbly 的 Microsoft 应用提供租户范围的管理员同意,或为 Warmbly 的 Google 客户端设置全域委派。在此期间,邮箱行会显示为 正在授权 ,并分别显示供应商返回的请求状态,例如排队中或处理中。授权最多可能需要一小时。如果某个 Google 域名在等待管理员操作,该行会注明具体步骤:将 Warmbly 的客户端 ID 和权限范围添加到“安全 > 访问权限和数据控制 > API 控制 > 全域委派”。如果供应商在 20 分钟内未推进请求,该行会说明情况,并提供时间和请求 ID,供你联系供应商客服。导入任务会一直保持打开,直到邮箱自行连接,无需任何人逐个登录。如果想更快连接, 一次连接全部(管理员登录) 可以使用该域名的全局管理员账户登录一次(供应商会提供登录信息),完成原本请求供应商处理的授权:域名下的每个 Microsoft 邮箱会在一分钟内连接,以后导入到该域名的邮箱也无需登录。行内的 登录 则以该邮箱身份登录,只连接这一个邮箱。一个请求即可覆盖整个域名的所有邮箱。最终创建的授权仅覆盖此供应商账户持有的域名,即使供应商的 Microsoft 组织中还有其他域名也不包括在内。Google 域名需要供应商列表中存在管理员邮箱。如果供应商无法授权该域名,或两小时内仍未完成,该域名的行就会退回 登录 状态,并在行内注明原因。取消导入时,仍在等待的行也会进行同样的处理。
- 密钥加密保存,此后不会再次显示。 API 密钥会使用工作区自己的加密密钥加密。连接列表只显示供应商、名称、状态和邮箱数量,不显示密钥。更新会先向供应商验证新密钥,然后替换旧密钥。
- 自动获取供应商轮换后的密码。 对于来自供应商、因尚未解决的连接错误而停止运行的 SMTP 和 IMAP 邮箱,系统每 15 分钟检查一次。如果供应商当前持有的密码已更改,Warmbly 会向服务器验证新密码,并用它重新连接邮箱。每个邮箱最多每 6 小时尝试一次,因此仍然无效的密码不会在每轮检查中反复尝试。
- 密钥被拒绝时会标记连接。 如果供应商接受密钥,但该密钥无法访问任何工作区,系统会以
mailbox_vendor_no_workspace拒绝连接,因为没有可列出的内容。如果供应商不再接受密钥,连接会显示为无效,并附上供应商返回的原因;依赖该密钥的行会以vendor_unauthorized失败,直到密钥更新。 - 删除连接会保留邮箱。 邮箱仍保持连接并继续发送,但供应商轮换密码时,它们不会再自动重新连接。
Google Workspace 超级管理员可以通过全域委派,为整个域名授权 Warmbly。之后,域名下的每个邮箱都可通过这一授权连接:不需要应用专用密码,不会因某人修改密码而失效,各邮箱所有者也无需操作。这是连接 Workspace 邮箱的推荐方式。
选择添加账户,然后选择 Google,再选择整个 Workspace 域名。对话框会显示客户端 ID 和需要授权的权限范围。在自托管实例中,运维人员配置 Google 服务账户之前,此选项会保持禁用。参见整域邮箱连接。
首先由超级管理员授权客户端 ID。这一步必须在证明域名控制权之前完成,因为 Warmbly 会立即检查授权:
-
以超级管理员身份登录 admin.google.com,进入安全 > 访问权限和数据控制 > API 控制,然后选择管理全域委派。
-
选择添加新条目,粘贴对话框显示的客户端 ID。它是一串很长的数字,绝不会以
apps.googleusercontent.com结尾。 -
准确输入以下三个权限范围,以逗号分隔:
https://www.googleapis.com/auth/gmail.modify,https://www.googleapis.com/auth/gmail.settings.basic,https://www.googleapis.com/auth/admin.directory.user.readonly -
选择授权,等待几分钟,让 Google 应用更改。
然后返回 Warmbly,输入域名及该域名上的超级管理员地址,并按下述步骤证明域名控制权。
证明工作区有权控制该域名
客户端 ID 属于实例,不属于你的工作区,因此仅为其授权并不能说明是哪个工作区发起了请求。只有通过以下任一方式证明控制该域名的工作区,才会记录这项授权:
-
以管理员身份登录。 如果实例配置了 Google 登录应用,Warmbly 会为你输入的管理员地址打开 Google 登录页面。登录地址必须与输入的地址完全相同,经过 Google 验证,并且属于该 Workspace 域名。
-
发布 DNS 记录。 此方式始终可用;对于没有 Google 登录应用的实例,这是唯一的验证方式。在 DNS 服务商处添加以下
TXT记录,然后确认:类型 名称 值 TXT_warmbly.<domain>warmbly-verify=<value>该值对应你的工作区和域名这一唯一组合,因此为其他工作区发布的记录不能证明你的工作区拥有控制权。它与根域名重定向所需的域名验证记录相同,因此一条记录可同时用于两者。DNS 更改可能需要一段时间才会生效;记录可解析后,再次确认即可。
登录链接有效期为 15 分钟,只能使用一次,而且只能由发起操作的成员在同一工作区中使用。记录授权时,你还需要对自己的登录身份进行近期确认。
证明控制权之后,Warmbly 会检查授权本身:读取管理员自身的 Gmail 资料和域名的用户目录,并确认目录中将该地址列为超级管理员。管理控制台中的更改可能需要几分钟才会生效,因此刚保存后如果被拒绝,可以再试一次。授权会覆盖该域名,以及所有用户地址中出现的其他域名。再次为同一域名创建授权时,系统会重新验证并更新现有授权,不会新建第二项。
管理员地址只用于读取目录,方便你选择要连接的邮箱。系统不会连接该管理员邮箱,也不会保存其令牌。前两个权限范围与通过 Google 登录连接的邮箱所持有的权限相同;第三个权限范围用于读取用户列表。
从目录中选择用户,或连接所有尚未在工作区中的活跃用户。如果某个邮箱已经通过自身的 Google 登录连接到工作区,系统会将其标记为可迁移:连接它会直接将现有邮箱切换为使用管理员授权,并保留其历史记录、营销活动和预热;选择连接全部用户时也会包含它。每个邮箱在连接时都会通过 Gmail 验证,并像通过 Google 登录连接的邮箱一样使用 Gmail API。系统不会为任何邮箱保存令牌;每当工作节点需要时,后端都会生成一个短期令牌。
系统每小时重新检查一次授权。如果 Google 不再认可授权,例如管理控制台中的条目被删除,或某项权限范围被移除,授权会显示为无效,其邮箱也会停止运行。如果检查未获得 Google 的响应,则不会改变现状。之后的检查成功时,因该授权失效而停止的邮箱会自动恢复运行;你手动关闭的邮箱仍会保持关闭。重新检查会立即执行检查。删除授权会停止所有通过该授权连接的邮箱。
通过授权连接邮箱和删除授权都会影响整个域名的邮件,因此与记录授权一样,这两种操作都需要近期确认你的登录身份。
要移除授权,打开添加账户 > Google > 整个 Workspace 域名或 Microsoft > 整个组织,在该授权的更多菜单中选择移除授权。确认移除,如果出现提示,再完成确认是你本人。移除操作会等待身份验证,成功后自动继续。返回 403 且代码为 reauth_required 表示需要完成这项检查,并不表示域名归另一个实例所有。移除授权会停止本实例中依赖它的邮箱;不会删除在另一个自托管实例中通过应用专用密码连接的邮箱。
全局管理员可以一次性为整个 Microsoft 365 组织批准 Warmbly。之后,邮箱通过具有应用程序权限的 Microsoft Graph 连接,无需逐个登录。这是连接 Microsoft 365 邮箱的推荐方式。
选择添加账户,然后选择 Microsoft,再选择整个组织,由全局管理员或特权角色管理员在打开的 Microsoft 授权同意页面中选择接受。窗口随后会通过登录确认批准者身份,通常无需再次操作,然后关闭。只有登录者具有上述角色之一,Warmbly 才会记录该组织。这是 Microsoft 端唯一需要进行的步骤,而且只需一次。在自托管实例中,运维人员需要先配置 Microsoft 应用,此选项才可用。参见整域邮箱连接。同意授权会在该组织中向实例的 Microsoft 应用授予以下应用程序权限:
| 权限 | 用途 |
|---|---|
Mail.ReadWrite | 读取回复并移动邮件 |
Mail.Send | 发送邮件 |
User.Read.All | 列出组织的用户,方便你选择要连接的邮箱 |
记录的组织是管理员登录的组织,以 Microsoft 在授权完成时返回的信息为准,因此授权始终只能对应实际同意授权的组织。随后,Warmbly 会获取该组织的令牌并读取其用户;用户地址中的域名(不包括来宾用户)会成为授权覆盖的域名。授权链接有效期为 15 分钟,只能使用一次,而且只能由发起操作的成员在同一工作区中使用。记录授权需要对自己的登录身份进行近期确认,通过该授权连接邮箱和删除授权也有相同要求。再次为同一组织同意授权时,会更新现有授权,不会新建第二项。
应用程序权限可以访问组织中的每个邮箱。Microsoft 允许 Exchange 管理员将范围缩小到你选择的邮箱,我们建议这样做。可以在 Exchange Online PowerShell 中配置应用程序访问策略:
Connect-ExchangeOnline
# A mail-enabled security group holding the mailboxes Warmbly may use
New-DistributionGroup -Name "Warmbly senders" -Type Security -PrimarySmtpAddress warmbly-[email protected]
Add-DistributionGroupMember -Identity "Warmbly senders" -Member [email protected]
# <app id> is the Application (client) ID of the app you consented to, under Enterprise applications in the Microsoft Entra admin center
New-ApplicationAccessPolicy -AppId <app id> -PolicyScopeGroupId warmbly-[email protected] -AccessRight RestrictAccess -Description "Warmbly sends only from these mailboxes"
Test-ApplicationAccessPolicy -Identity [email protected] -AppId <app id>Microsoft 较新的 RBAC for Applications 可以使用管理范围和角色分配实现同样的限制:先使用 New-ManagementScope,再使用 New-ManagementRoleAssignment -App <app id> -Role "Application Mail.ReadWrite",并将 "Application Mail.Send" 与 -CustomResourceScope 配合使用。这些限定范围的角色分配会叠加在授权同意授予的权限之上,因此切换到这种方式时,需要在 Microsoft Entra 中移除组织范围的 Mail.ReadWrite 和 Mail.Send 授权同意。不在策略范围内的邮箱会在连接时被拒绝。
从目录中选择用户,或连接所有尚未在工作区中的已启用用户。列表只显示具有邮箱地址的用户。如果某个邮箱已经通过自身的 Microsoft 登录连接到工作区,系统会像处理 Google 邮箱一样将其标记为可迁移:连接它会直接将现有邮箱切换为使用管理员授权,选择连接全部用户时也会包含它。Microsoft 邮箱可以自行决定是否迁移;它们原有的登录方式仍然有效。每个邮箱在连接时都会通过 Microsoft Graph 验证;已禁用的账户或没有 Exchange Online 许可证的用户没有可连接的邮箱,因此会被拒绝。与 Google 一样,系统不保存令牌,而是在工作节点需要时由后端生成。授权每小时检查一次;授权同意被撤回时,相关邮箱会停止,之后检查恢复成功时会重新启动;如果检查未收到 Microsoft 的响应,则不会改变现状;删除授权会停止所有通过该授权连接的邮箱。
文件或粘贴列表无需包含管理员授权信息。如果某行的域名已有有效授权,该行就会通过此授权连接:
- Google Workspace 邮箱行通过域名的 Google 授权连接,忽略该行中的任何密码。
- Microsoft 365 邮箱行通过组织授权连接,无需等待登录。
从邮箱供应商导入的行也遵循相同规则。导入之后创建的授权同样有效:在其覆盖域名中,仍等待 Google 或 Microsoft 登录的行会重新排队,并在一分钟内通过该授权连接,无需再次导入。预览会标记这些行,每个已连接邮箱也会标注登录方式 delegated。如果授权失效,相关行会以 mailbox_grant_inactive 失败;检查授权后,再重试这些行。
只要邮箱地址已在工作区中,无论由谁连接,系统都会按不区分大小写的方式匹配。如果邮箱已连接选项决定处理方式:
- 更新(默认):先向服务器验证新密码,通过后替换已保存的密码,并应用映射的设置。只有文件中提供发件人姓名时,才会修改姓名。
- 跳过:保留邮箱原状,并将该行标记为已跳过。
通过 Google 或 Microsoft 登录连接的邮箱只会应用设置,因为没有可替换的密码。如果其域名已有有效授权,该行会直接将现有邮箱切换为使用授权,并保留历史记录、营销活动和预热(参见从逐邮箱 Google 登录迁移);跳过则保留原状。如果同一地址在一个文件中出现两次,只导入第一行,后续行会以在文件中重复列出为由跳过。
在检查步骤中,你可以一次性为此次导入的所有域名设置两个选项,界面还会说明其中有多少域名可由邮箱供应商代为配置。导入连接各域名的邮箱时会应用这两个选项,之后也可以在发件域名中修改。
- 自有跟踪域名。 默认开启。该子域名用于跟踪域名下所有邮箱的打开和点击,默认为
link.<domain>,除非你输入其他名称替换link。如果域名已有可用的跟踪主机,则会保留:可以是同域名下某个已验证邮箱正在使用的主机,也可以是 DNS 已指向本实例的主机;Warmbly 会依次尝试link、links、track、t、click、go、email和trk。如果已连接的邮箱供应商账户持有该域名,且其 API 支持写入 DNS 记录,Warmbly 会通过供应商为你写入CNAME。否则,需要你自行添加。无论哪种方式,系统都会保存主机设置;在记录可以解析之前,链接仍使用共享主机,记录生效后会自动切换。参见自定义跟踪域名。 - 将所有根域名重定向到某个网站,例如
https://yourcompany.com。如果其他域名已有重定向目标,系统会预先填入该网站。导入在某域名上连接第一个邮箱后,就会为该域名进行配置。如果已连接的邮箱供应商账户持有该域名,并支持转发,则直接使用供应商的转发功能,无需添加 DNS 记录。否则,在通过 DNS 证明你控制该域名后,由 Warmbly 自身提供重定向。参见根域名重定向和邮箱供应商持有的域名。
存在多个域名时,按域名修改会打开一个列表,显示每个域名的跟踪主机和网站,并根据统一设置预先填好。你可以单独修改某个域名的任一值,跟踪主机必须是该域名的子域名;也可以取消勾选以排除该域名,或点击重置恢复统一设置。修改统一设置时,所有尚未单独修改的域名都会随之更新。
某项设置无法应用时,不会导致该行失败:邮箱仍会连接,该行的提示会说明哪些设置未应用。在 API 中,这些配置对应 tracking_domains 和 redirects 对象,位于 options 中,两者都以域名为键,各最多支持 500 个域名。
导入在服务器上运行,关闭标签页不会中断。工作区内所有具有邮箱管理权限的人都能实时查看进度,邮箱列表也会随之逐步填充。服务器重启也不会丢失行:重启时正在连接的行会继续处理;如果该行已创建邮箱,系统会继续应用导入设置并完成连接,不会将其当作原本就存在的邮箱而跳过。之后可以通过对话框中的最近的导入,或账户页面上的导入按钮重新打开导入任务。
导入菜单会说明每个导入任务的情况:目前已检查多少邮箱、还有多少邮箱在等待供应商授权、有多少需要登录或已经失败。按钮上的徽标会统计需要你处理的导入任务数量。菜单打开期间,状态会实时更新。点击某个导入任务上的 ×,会从工作区所有人的列表中隐藏该任务;如果任务仍在运行,系统会先要求确认并停止它,已经连接的邮箱仍保持连接。隐藏的导入任务会保留历史记录。
系统同时处理 8 行,且对同一邮件托管服务商最多同时连接 3 个邮箱,因为服务商会限制同一地址发起的突发登录请求。每份凭据都与单独连接邮箱时一样,先在实际服务器上验证,成功后才保存,因此错误凭据会在这里失败,不会等到第一次发送时才暴露。检查会在计划分配给该邮箱的工作节点上运行,服务商看到的登录来源地址因此就是邮箱之后持续使用的地址。如果某个工作节点未响应,检查会转到其他节点;如果没有任何节点响应某行的检查,系统会再尝试几次,最后才报告为没有可用的工作节点。
超出工作区邮箱额度的行会以已达到邮箱数量上限失败;预览会说明当前额度可容纳多少邮箱。提高额度后,再重试这些行。
取消导入会停止尚未开始的行。已经在连接的行会继续完成。
失败项会按原因分组,并提供相应的解决方法。API 中每一行的 cause 也使用相同的键。
| 原因 | 标题 |
|---|---|
missing_email | 未提供邮箱地址 |
invalid_email | 不是有效的邮箱地址 |
duplicate_row | 在文件中重复列出 |
missing_password | 未提供密码 |
unknown_servers | 未找到邮件服务器 |
invalid_value | 无法解析某个值 |
microsoft_signin | 通过 Microsoft 登录连接 |
google_signin | 通过 Google 登录连接 |
provider_unsupported | 服务商不支持通过 IMAP 连接 |
allowance_reached | 已达到邮箱数量上限 |
no_worker | 没有可用的工作节点 |
creator_removed | 导入任务所有者已离开工作区 |
vendor_unauthorized | 供应商拒绝了 API 密钥 |
vendor_unreachable | 供应商未返回凭据 |
vendor_authorizing | 供应商正在授权 Warmbly;这不是失败,邮箱行会自行连接 |
mailbox_grant_not_configured | 此处尚未配置管理员授权连接 |
google_delegation_unauthorized | Google 拒绝了全域委派 |
microsoft_consent_missing | 缺少 Microsoft 365 管理员的授权同意 |
mailbox_grant_mailbox_unreachable | 此账户没有邮箱 |
mailbox_grant_domain_mismatch | 域名不在授权覆盖范围内 |
mailbox_grant_inactive | 管理员授权已失效 |
internal | 发生了错误 |
google_app_password_required | Google 需要应用专用密码 |
google_bad_credentials | Google 未接受该应用专用密码 |
google_imap_disabled | Google 中的 IMAP 已关闭 |
google_web_login_required | Google 要求先通过浏览器登录 |
microsoft_smtp_auth_disabled | Microsoft 365 中的 SMTP 登录已关闭 |
microsoft_security_defaults | Microsoft 安全默认值阻止使用密码 |
microsoft_conditional_access | Microsoft 登录策略阻止了此操作 |
microsoft_basic_auth_disabled | Microsoft 要求使用 Microsoft 登录 |
microsoft_bad_credentials | Microsoft 未接受该密码 |
yahoo_app_password_required | Yahoo 需要应用专用密码 |
aol_app_password_required | AOL 需要应用专用密码 |
icloud_app_password_required | iCloud 需要应用专用密码 |
zoho_app_password_required | Zoho 拒绝了该密码 |
fastmail_app_password_required | Fastmail 需要应用专用密码 |
yandex_app_password_required | Yandex 需要应用专用密码 |
imap_disabled | 此邮箱的 IMAP 已关闭 |
account_locked | 账户已锁定或禁用 |
too_many_logins | 登录尝试次数过多 |
auth_unavailable | 服务器在此处不接受密码 |
auth_refused | 服务器拒绝了登录 |
host_not_found | 服务器名称不存在 |
host_unreachable | 无法连接到服务器 |
port_blocked | 邮件端口似乎被屏蔽 |
tls_failed | 安全连接失败 |
cleartext_refused | 必须使用加密连接 |
timeout | 服务器未及时响应 |
temporary | 服务器要求稍后重试 |
server_declined | 服务器未接受连接 |
随后可以直接修正,无需重新上传:
- 修正一行:输入新密码、应用专用密码、登录用户名或服务器信息,该行会重新排队。
- 重试一组:将具有同一失败原因的所有行重新排队,也可以为它们统一提供一个新密码。
- 下载失败的行:下载包含所有未连接行的 CSV,其中包括行号、上传时的各列(不含密码),以及
status、problem和how_to_fix。上传修正后的文件之前,请重新填入密码。
导入完成后的 7 天内可以重试。之后,这些行的凭据会被删除,需要再次导入。
-
未连接行的凭据会使用工作区自己的加密密钥加密,在导入完成后保留 7 天,以便重试,之后删除。
-
已完成的导入任务及其行数据,包括地址、状态、原因,以及下载文件中显示的非密码单元格,会在 30 天后删除。
-
已连接邮箱的凭据,存储方式与其他邮箱完全相同。
-
邮箱供应商连接,包括已加密的 API 密钥和 ID,会一直保留到你删除为止。管理员授权也是如此;其中保存覆盖的域名、租户信息,以及 Google 授权的管理员地址,但不保存令牌。
已保存的列映射和供应商连接会随工作区导出一起迁移。导入任务本身不会迁移,管理员授权也不会:只有工作区在所在实例中证明域名或组织控制权后,才会记录授权,单凭归档文件无法证明这一点。通过授权连接的邮箱本身会迁移。在目标实例中重新创建授权,然后从其目录中选中这些用户;它们会被列为已连接,因此“连接所有尚未在此处的用户”会跳过它们。你也可以导入包含这些地址的文件,并为现有邮箱选择更新。这两种方式都会为迁移过来的现有邮箱重新关联授权,保留其历史记录和设置,不会创建第二个邮箱。
导入功能通过 /emails/imports 向已登录会话提供,不向 API 密钥开放,因为其中包含密码。出于同样的原因,供应商连接(/emails/vendors)、管理员授权(/emails/grants)和发件域名(/emails/domains)也仅向会话开放。具体路由参见端点。POST /emails/onboarding/smtp-imap/bulk 仍然可用,可以在一次同步调用中连接最多 50 个 SMTP 和 IMAP 邮箱。