首页 > 其他分享 >项目部署时邮件发送错误

项目部署时邮件发送错误

时间:2024-04-11 18:23:43浏览次数:21  
标签:qq 部署 javaMailSenderImpl smtp 发送 mailProperties properties 邮件

1711030214319

将spring boot3项目部署到阿里云服务器运行,发送邮件时报错 Could not connect to SMTP host: smtp.qq.com, port: 25, response: -1

原因

阿里云服务器出于安全策略的考虑,主动屏蔽了服务器25端口,导致邮件服务无法正常使用。

解决办法

重新编写自定义JavaMailSenderImpl,并注册为Bean,邮件的端口改为 465

@Bean
    public JavaMailSenderImpl mailSender(MailProperties mailProperties) {
        JavaMailSenderImpl javaMailSenderImpl = new JavaMailSenderImpl();
        javaMailSenderImpl.setHost(mailProperties.getHost());
        javaMailSenderImpl.setUsername(mailProperties.getUsername());
        javaMailSenderImpl.setPassword(mailProperties.getPassword());
        javaMailSenderImpl.setDefaultEncoding(StandardCharsets.UTF_8.name());
        javaMailSenderImpl.setPort(mailProperties.getPort());
        if (mailProperties.getPort() == 465) {
            Properties properties = new Properties();
            properties.put("mail.smtp.ssl.enable", true);
            javaMailSenderImpl.setJavaMailProperties(properties);
        }
        return javaMailSenderImpl;
    }

image-20240322231407896

上传服务器运行,出现如下错误

image-20240322230811766

只需在@Configuration下添加 @Import(MailProperties.class) 把属性导入进来就行了

image-20240322230854738

第二种方案(本人没有测试,貌似原理差不多)

直接在 application.yml 中添加如下配置

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   //这里可能有问题springboot3内置的是tomcat10,依赖包名应该是jakarta
            fallback: false
          starttls:
            enable: true
            required: true

标签:qq,部署,javaMailSenderImpl,smtp,发送,mailProperties,properties,邮件
From: https://www.cnblogs.com/starychen/p/18129827

相关文章

  • dmdpc安装部署
    环境:OS:Centos7DM:DMV8达梦分布计算集群英文全称DMDistributedProcessingCluster,简称DMDPC.计划生成节点,英文全称为SQLProcessor,简称为SP;数据存储节点,英文全称为BackendProcessor,简称为BP;元数据服务器节点,英文全称为MetadataProcessor,简称为MP.一个最小的......
  • 新建微服务工程并形成jar包,部署到docker容器
    流程:1.创建微服务使用springcloud  2.打jar包:  3.把jar包上传到linux服务器中。4.编写dockerfile文件vimdockerfiledockerfile文件内容: 5.构建镜像 dockerbuild-tzzyy_docker:1.6. 6.运行容器dockerrun-d-p6001:6001容器Id  7.访问测......
  • k8s~pod单副本的平滑部署
    如果你的服务器资源紧张,pod可能只能是单副本了,这时在进行平滑的滚动部署时,应该如何配置呢?总不能在部署期间503吧,这是不能接受的!maxUnavailable来配置不可用数量我们可以在spec.strategy.strategy.rollingUpdate中,将不可用数maxUnavailable改成0即可实现平滑部署,配置如下:apiVers......
  • Docker生态架构及部署
    一、Docker生态架构1、生态架构1.1DockerHost用于安装Dockerdaemon的主机,即为DockerHost,并且该主机中可基于容器镜像运行容器。1.2Docker daemon用于管理DockerHost中运行的容器、容器镜像、容器网络等,管理由Containerd.io......
  • 在 NestJS 中使用 Nodemailer 发送电子邮件的方法
    在学习Nestjs的过程中,我希望能够使用Nodemailer发送测试邮件,但在NestJS应用程序的上下文中我遇到了困难。我在互联网上搜索了解决方案,在经过大量研究后,我找到了一个解决方法。结果证明,这真的很简单。在本文中,我将分享我的解决方案,以便您可以在您的NestJS项目中使用它。(......
  • Windows机器部署nginx并设置开机自启
    1.Windows安装nginx服务(1)下载nginx安装包      http://nginx.org/download/nginx-1.22.1.zip(3)解压安装                #进入目录修改配置文件(修改配置文件此处省略,根据自己的需求进行修改)     2.Windows设置nginx开机......
  • github-webhook+docker实现项目可持续自动化部署
    目录一、项目手动部署二、项目自动部署自动构建部署流程docker概念补充使用nginx+pm2+github-webhook+docker实现项目自动部署注:docker也能实现pm2的守护进程功能(持续启动项目),所以使用了docker就不需要使用pm2了但是需要注意的是使用node启动的webhook服务器不......
  • 网站使用nginx部署ssl证书开启https(开启http2)
    目录网站部署ssl证书就是将网站的http协议转换为更加安全的https协议1、腾讯云申请ssl证书2、下载证书3、xftp将下载的证书上传到服务器指定的目录下4、nginx配置对应域名的443端口,开启ssl5、nginx监听对应域名的80端口返回301强制重定向到该域名下的ssl443端口测试HTTP......
  • openGauss1.1.0主备部署
    openGauss1.1.0主备部署openGauss1.1.0版本介绍:openGauss1.1.0定位为Update版本,与原来的1.0.1版本特性功能保持兼容。主要提供如下功能:继承功能:SQL标准语法、UPSERT、数据类型、XML类型、表、临时表、全局临时表、外部表、视图、物化视图、索引、外键、Gin索引、......
  • java计算机毕业设计基于微信小程序的书籍销售系统【附源码+远程部署+程序+mysql】
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着移动互联网技术的飞速发展,智能手机用户数量急剧增加,人们获取信息和进行日常交易的方式正逐步向移动端转移。微信作为中国最流行的社交通讯软件,其推出......