javamail配置

25 vs 465 vs 587

大多数电子邮件软件在端口25上使用SMTP将消息提交到电子邮件服务器,以便转发到目的地。然而,SMTP最初设计用于传输,而不是提交。因此定义了另一个端口(587)用于消息提交。尽管端口587不强制要求使用STARTTLS,但在意识到客户端和服务器之间通信的SSL/TLS加密是一个重要的安全和隐私问题的同时,端口587的使用开始流行起来。

结果是,在大多数情况下,通过端口587提供消息提交的系统需要客户端使用STARTLS来升级连接,还需要用户名和密码来进行身份验证。这种方法还有一个额外的好处。通过让用户不再使用25端口提交电子邮件,isp现在能够阻止用户电脑的25端口连接,这些连接是垃圾邮件的重要来源,因为它们会感染垃圾邮件发送病毒。

目前,使用端口465加密的SMTP SSL/TLS的人和使用端口587升级STARTTLS的SMTP的人之间的情况似乎相对随机。

MTA到MTA通信(邮件服务器到邮件服务器)使用端口25。它可能被用于客户端到服务器的通信,但目前并不是最推荐的。标准SMTP端口接受来自其他邮件服务器的电子邮件到它的“内部”邮箱,而不进行身份验证。

端口465和587用于电子邮件客户端到电子邮件服务器的通信-使用SMTP协议发送电子邮件。

端口465和587都是邮件提交代理(MSA)的有效端口。端口465需要在连接设置时协商TLS/SSL,端口587如果选择协商TLS,则使用STARTTLS。IANA注册表进行了更新,允许为此目的合法使用端口465。对于邮件中继,只使用端口25,因此STARTTLS是使用邮件中继执行TLS的惟一方法。

很多云服务商会直接关闭25端口, 防止垃圾邮件。

SSL vs TLS vs STARTTLS

对于不同的术语SSL、TLS和STARTTLS,常常会有一些混淆。

SSL和TLS都提供了一种方法来加密两台计算机(例如您的计算机和我们的服务器)之间的通信通道。TLS是SSL的继承者,术语SSL和TLS可以互换使用,除非您指的是协议的特定版本。

STARTTLS是一种使用SSL/TLS将现有的不安全连接升级为安全连接的方法。注意,尽管名称中有TLS,但STARTTLS并不意味着必须使用TLS,您可以使用SSL。

465-CONFIG

spring:
  mail:
    host: 'smtp.exmail.xx.com'
    username: 'xx@xx.com'
    password: 'xxxxxxxx'
    properties:
      mail.debug: false
      mail.smtp.auth: true
      mail.smtp.port: 465
      mail.smtp.ssl.enable: true #必须为true 注释掉或者为false都无法发送邮件

如果我们把port改成587会抛出
javax.net.ssl.SSLException: Unsupported or unrecognized SSL message
如果我们把enable改成false则可以发送邮件

587-CONFIG

spring:
  mail:
    host: 'smtp.exmail.xx.com'
    username: 'xx@xx.com'
    password: 'xxxxxxxx'
    properties:
      mail.debug: false
      mail.smtp.auth: true
      mail.smtp.port: 587
      mail.smtp.ssl.enable: false #注释或者为false
      mail.smtp.starttls.enable: true
      mail.smtp.starttls.required: true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值