ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

BillionMail 怎么扫描并清理收件人列表中的无效地址(异常收件人)

BillionMail 怎么扫描并清理收件人列表中的无效地址(异常收件人) BillionMail 怎么扫描并清理收件人列表中的无效地址异常收件人【免费下载链接】BillionMailBillionMail gives you open-source MailServer, NewsLetter, Email Marketing — fully self-hosted, dev-friendly, and free from monthly fees. Join the discord: https://discord.gg/asfXzBUhZr项目地址: https://gitcode.com/GitHub_Trending/bi/BillionMail在 BillionMail 里维护联系人分组后列表里难免混入一些收不到信的死地址。BillionMail 的异常收件人功能可以对某个联系人分组发起扫描逐域名查询 MX 记录把查不到 MX 记录的地址判定为异常再按你的选择只记录、加入异常表、或直接从分组中删除。本文按接口调用的方式走一遍完整流程发起扫描 → 查看扫描日志 → 查看异常列表 → 清理记录并说明如何开关自动扫描。适用前提是你在一个运行中的 BillionMail 实例上具备 API 访问权限接口定义要求请求头携带Authorization字段见 接口定义。扫描是怎么判定的先了解判定逻辑避免对结果产生误解。发起分组扫描后后端扫描实现会取出分组内所有状态正常的联系人邮箱bm_contacts表中该group_id且active1的记录按后的域名聚合对每个域名执行 MX 记录查询DNS 查询失败时最多重试 3 次并发上限 20 个域名域名存在 MX 记录则该域名下所有地址记为正常否则该域名下所有地址记为异常失败原因写为no MX record或DNS lookup failed: ...。也就是说扫描校验的是域名是否有 MX 记录不验证邮箱账号本身是否存在。整个扫描是后台异步任务接口立即返回提示任务正在后台运行请查看日志。扫描过程会持续写入宿主机工作目录下的日志文件logs/core/check_email_valid.txt。如果分组不存在或分组内没有可用联系人接口会分别返回 The group does not exist. 或 The contact person within the group is unavailable. 错误。发起扫描check_group调用POST /abnormal_recipient/check_group参数curl -X POST https://你的实例地址/abnormal_recipient/check_group \ -H Authorization: 你的API凭证 \ -H Content-Type: application/json \ -d {group_id: 1, oper: 2}group_id联系人分组 ID必填接口定义要求min:1。oper操作类型必填取值1、2、3决定扫描后如何处理无效地址1只检查不落地2把无效地址加入异常表写入异常记录add_type3来源说明为 Manual scanning group (MX check)3直接从该分组中删除无效地址破坏性操作会从bm_contacts表删除对应记录执行前确认分组无误。接口同步返回成功即表示扫描任务已启动。想看处理结果走下一步。查看扫描结果get_scan_log扫描日志文件由POST /abnormal_recipient/get_scan_log读取并原样返回curl -X POST https://你的实例地址/abnormal_recipient/get_scan_log \ -H Authorization: 你的API凭证日志由扫描程序逐行追加包含开始时间、分组名、待查邮箱数与域名数、每个域名的查询结果√通过或x加原因以及结尾的汇总段格式为Results for [Group[分组名]]: Tested: 总数 Normal: 正常数 Abnormal: 异常数 Abnormal emails: 逗号分隔的异常邮箱列表上面的行是日志的实际格式具体数值随你的分组内容变化。日志文件不存在时尚未扫描过接口返回空内容且状态为成功。日志文件每次发起扫描时会被清空重写所以这里看到的是最近一次扫描的结果。查看异常收件人列表list异常表中的记录通过GET /abnormal_recipient/list分页查询curl https://你的实例地址/abnormal_recipient/list?page1page_size20 \ -H Authorization: 你的API凭证page与page_size必填min:1可选参数keyword搜索关键词、add_type按来源过滤。返回的每条记录包含字段含义id记录 ID后续删除操作用它recipient异常邮箱create_time记录时间description来源说明count计数add_type来源类型1手动添加2自动扫描3手动扫描也就是说扫描前用oper2异常地址会带add_type3出现在这里系统自动扫描产生的记录则是add_type2。清理记录清理动作有三个粒度按需选用单条移除POST /abnormal_recipient/delete传{id: 记录ID}id必填取自 list 接口。注意该操作是移除异常表中的一条记录不是删联系人。清空异常表POST /abnormal_recipient/clear_abnormal无参数把异常收件人记录全部清掉。扫描时直接删联系人把check_group的oper设为3扫描完成的同时就从分组里删除无效地址之后无需再手动清理分组。另外还有一个反向操作如果你确认某个地址其实有效或想主动拉黑某个地址POST /abnormal_recipient/add传{recipient: 邮箱}可手动加入异常表recipient必填且需为合法邮箱格式。自动扫描开关系统默认开启自动扫描bm_options表中abnormal_mail_check_switch选项缺省时按开启处理见 开关实现。查询与设置# 查询当前开关状态 curl https://你的实例地址/abnormal_recipient/check_switch \ -H Authorization: 你的API凭证 # 设置开关oper1 开启oper0 关闭 curl -X POST https://你的实例地址/abnormal_recipient/set_check_switch \ -H Authorization: 你的API凭证 \ -H Content-Type: application/json \ -d {oper: 0}关闭后新地址不会再被自动扫描进异常表但不影响上面所有手动接口。验证与边界一次完整的核对路径是check_groupoper2发起扫描 →get_scan_log确认汇总段出现Tested/Normal/Abnormal计数且异常邮箱已在Abnormal emails行列出 →list接口确认对应记录带add_type3出现。若日志停在 start checking... 没有结果段说明后台扫描还在跑按域名并发查询域名多时耗时更久稍后再查一次get_scan_log。最后明确几条边界避免误用扫描只回答域名有没有 MX 记录。域名有 MX 但账号不存在的地址这个功能不会标记出来。日志文件logs/core/check_email_valid.txt位于宿主机工作目录每次扫描会清空重写不能用于回溯历史多次扫描。oper3删除的是分组内联系人记录本身而delete/clear_abnormal操作的是异常表记录两者对象不同别混用。【免费下载链接】BillionMailBillionMail gives you open-source MailServer, NewsLetter, Email Marketing — fully self-hosted, dev-friendly, and free from monthly fees. Join the discord: https://discord.gg/asfXzBUhZr项目地址: https://gitcode.com/GitHub_Trending/bi/BillionMail创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表