You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

家用电脑基础网络配置问题:JakartaMail发信为何包含本机名

局域网端口风险相关结论

你的局域网不存在对外开放端口的风险。
整个邮件发送流程是你的Java程序主动向mailtrap.io的SMTP服务器发起出站TCP连接,所有数据都是你本地主动向外传输的,公网侧的服务没有主动向内网发起连接请求。常规的家用/企业路由器、防火墙默认都会放行主动出站连接的返程流量,不需要你在内网网关做任何端口映射配置,也不会将你的本地设备暴露到公网可访问的范围。

设备名出现在Message-ID的原因

Message-ID是邮件协议要求的全局唯一标识字段,Jakarta Mail默认会在客户端本地生成该字段,不需要依赖上游SMTP服务器生成。
其默认生成规则为:

  • 第一部分为当前时间、随机数拼接生成的唯一字符串,对应你看到的###CODES###部分
  • 第二部分为读取本地系统的当前登录用户名,对应你看到的MYUSERNAME部分
  • 第三部分为读取本地设备的主机名,对应你看到的MY_COMPUTER_NAME部分
    三部分按[随机串].[用户名]@[主机名]的格式拼接后,外层包裹尖括号就是最终的Message-ID值,所以本地设备名会直接参与该字段的生成。

如果不想暴露本地用户名和设备名,可以手动调用MimeMessage.setMessageID()方法,自己生成符合RFC规范的唯一ID覆盖默认生成值即可。


内容的提问来源于stack exchange,提问作者Antonio E.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:27:04