天天看點

坑到吐血之——springboot發送郵件本地可以伺服器不可以

正經學徒,佛系記錄,不搞事情

本來今天高高興興,你為什麼要報這樣的錯

狀況

本地springboot項目整了一下使用 com.sun.mail 

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

來發送郵件的服務,在本地做好如下配置

spring: 
    mail:
        #伺服器位址
        host: smtp.qq.com
        #發送的郵箱賬号
        username: [email protected]
        #授權碼
        password: xxxx
        default-encoding: UTF-8
        properties:
            mail:
                debug: true
        port: 25
           

具體代碼網上一堆一堆的,随便找了一個測試了一下,用起來也賊像我兄弟順溜, 正高興的打包成jar部署上伺服器,結果問題來了,伺服器上郵件死活發送不出去,各種嘗試之下,終于發現了問題所在

解決

道聽途說的解釋如下:伺服器上由于安全政策,不允許使用smtp協定的25端口,是以需要改成經過ssl加密的smtps協定的465端口,配置修改如下,這下順暢了,不知你們是否遇到這樣的問題

spring: 
    mail:
        #伺服器位址
        host: smtp.qq.com
        #發送的郵箱賬号
        username: [email protected]
        #授權碼
        password: xxxx
        default-encoding: UTF-8
        properties:
            mail:
                debug: true
            smtp:
                socketFactory:
                    class: javax.net.ssl.SSLSocketFactory
        port: 465
           

繼續閱讀