Node.js实现邮件像素追踪器时1px图片路由未触发,是否被谷歌拦截?
问题原因排查
你采用的1px跟踪像素是行业内通用的邮件打开率统计方案,本身没有原理性错误,请求未触发的可能原因如下:
- 内网IP无法被外部访问:你使用的1xx开头的IP如果是本地局域网IP,邮件客户端或是邮箱服务商的代理服务器都处于公网环境,无法路由到你的本地服务,自然不会有请求到达。哪怕是本地测试用自己的邮箱打开邮件,只要你的邮箱客户端没有和本地服务处于同一个局域网下,也无法访问该IP。
- HTTP资源被邮件服务商拦截:包括Gmail在内的几乎所有主流邮箱,都默认禁止加载非HTTPS的外部资源,你的图片地址是
http协议,会被直接过滤,不会发起请求。 - 邮箱默认关闭外部图片自动加载:主流邮箱为了保护用户隐私,默认不会自动加载邮件内的外部图片,需要用户手动点击「显示图片」才会触发加载,如果你没有手动开启该选项,自然不会有请求发出。就算用户开启加载,Gmail也会用自身的图片代理服务缓存资源,请求会先由谷歌的代理服务器发起,而非用户客户端直接请求你的服务地址。
- 端口与服务监听配置错误:你使用的4001端口默认不会对外开放,需要确保你的服务是监听在
0.0.0.0而非本地回环地址127.0.0.1,同时服务器的防火墙、安全组放开了4001端口的入站请求,外部请求才能正常到达你的服务。
关于是否是谷歌拦截的说明
谷歌的邮件体系确实会拦截不符合安全规范的外部资源请求,但这只是可能的原因之一,你需要先解决服务公网HTTPS访问、端口开放的基础问题,再进行后续测试。
内容的提问来源于stack exchange,提问作者El Khawarizmi
相关产品推荐
相关产品推荐

