在Windows環境下郵件服務能夠正常使用,但是在Linux環境下,郵件服務報錯,無法發送郵件。
具體報錯信息如下:
com.sun.mail.util.MailConnectException: Couldn’t connect to host, port: smtp.qq.com, 25; timeout -1;
這個報錯的原因是因爲阿里雲服務器出於安全策略的考慮,主動屏蔽了服務器25端口,導致郵件服務無法正常使用。
解決該報錯的方法有兩種:
第一:開放25端口。
阿里雲服務25端口的屏蔽策略和普通的安全策略不同,無法通過配置安全組規則的方式來進行開放,如果需要開放25端口,需要向阿里雲進行申訴,這是一種比較麻煩的處理方法。
具體的阿里雲25端口申訴方法,可以參考:https://developer.aliyun.com/article/751812
第二:郵件服務不使用25端口,而是使用465端口。
具體方法爲:進行SpringBoot配置文件配置。
spring:
# SpringMail發送郵件相關配置
mail:
# 發送郵件的賬號名
username: [email protected]
# 授權碼
password: xxxxxxxxxxxx
# smtp服務主機 qq郵箱的服務主機爲smtp.qq.com
host: smtp.qq.com
# 服務協議
protocol: smtp
# 編碼集
default-encoding: UTF-8
# 服務端口
port: 465
properties:
mail:
smtp:
auth: true
socketFactory:
port: 465
class: javax.net.ssl.SSLSocketFactory
fallback: false
starttls:
enable: true
required: true