SpringBoot中發送郵件-本地發送成功,部署到阿里雲發送不了


很多次我在本地寫好了發送郵件的服務之后,部署到阿里雲的服務器,就歇菜了。Google了很久,找到的別人的記錄都是差不多。有人提到了使用端口的問題。解決因端口問題而發送不了郵件。

​ 我使用的是網易雲的郵箱,填好smtp服務器,填好基本的信息,本地一跑。誒,可以發送了。

依賴pom.xml

<dependencies>
	<dependency> 
	    <groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter-mail</artifactId>
	</dependency> 
</dependencies>

在application.properties中:

spring.mail.host=smtp.163.com //郵箱服務器地址
spring.mail.username=xxx@163.com //用戶名
spring.mail.password=xxyyooo    //密碼
spring.mail.default-encoding=UTF-8
mail.fromMail.addr=xxx@163.com  //以誰來發送郵件

這個方法具體可以參考博客:SpringBoot發送郵件

這個方法在本地是沒有問題的,但是部署在阿里雲上之后,會看到報錯,smtp端口25連接超時。。。

解決

於是,找了一下原因,發現是阿里雲的服務器不能使用25端口。

現在可以用smtp的465端口來發送郵件,網上的配置也是五花八門,找到一個配置比較全的文章:SpringBoot集成郵箱

和普通的文章只有配置文件的區別。

spring:
  mail:
    host: smtp.126.com
    username: xx@126.com
    password: xxxxxxxx
    protocol: smtp
    properties.mail.smtp.auth: true
    properties.mail.smtp.port: 465 #465或者994
    properties.mail.display.sendmail: Javen
    properties.mail.display.sendname: Spring Boot Guide Email
    properties.mail.smtp.starttls.enable: true
    properties.mail.smtp.starttls.required: true
    properties.mail.smtp.ssl.enable: true
    default-encoding: utf-8
    from: xx@126.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM