java 在Sping Boot 中使用YAML文件配置SMTP主机

lhcgjxsq  于 2023-01-19  发布在  Java
关注(0)|答案(4)|浏览(157)

我正在尝试为我的Sping Boot 应用程序配置SMTP主机。
我的application-dev.yml文件中有以下代码:

mail:
    host: smtp.gmail.com
    port: 465
    username: myemail@gmail.com
    password: mypassword

然而,当我尝试发送电子邮件时,我收到了这个异常:

Caused by: javax.mail.MessagingException: Could not connect to 
SMTP host: smtp.gmail.com, 
port: 465, response: -1

此外,我已经用JHipster生成了这段代码,我不确定是否应该修改其他内容,或者这足以配置SMTP主机。
将端口更改为587后,我得到以下信息:

org.springframework.mail.MailSendException: 
Failed messages:    com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue 
a STARTTLS command first. jm6sm60863600wjb.27 - gsmtp
enxuqcxy

enxuqcxy1#

我做了以下更改,现在它工作正常:

mail:
    host: smtp.gmail.com
    port: 587
    username: mymail@gmail.com
    password: mypassword
    protocol: smtp
    tls: true
    properties.mail.smtp:
        auth: true
        starttls.enable: true
        ssl.trust: smtp.gmail.com
5lhxktic

5lhxktic2#

我使用以下YAML配置通过Gmail发送邮件

spring:
  mail:
    default-encoding: UTF-8
    host: smtp.gmail.com
    username: <Gmail username>
    password: <Gmail password>
    port: 587
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
    protocol: smtp
    test-connection: false
o75abkj4

o75abkj43#

我想你弄错端口了。我想是587

更新

现在我们需要设置StartTLS

mail:
  host: smtp.gmail.com
  port: 587
  username: myemail@gmail.com
  password: mypassword
  properties:
    starttls.enable: true
yc0p9oo0

yc0p9oo04#

你可以试试下面的conf。它在我的环境中工作。

mail:
    debug: false
    host: host
    port: port_number
    properties:
      mail:
        protocol: smtp
        smtp:
          ssl:
            enable: true
            trust: "*"
          auth: false
          starttls:
            enable: true
            required: false

相关问题