Springboot 发邮件端口问题

=》今天在服务器(阿里云)部署项目的时候发现邮件不能发送,在本地完全ojbk的,几经波折最终还是解决了,在这里记录一下,也希望给你们提供一点微薄的帮助。

下面是解决的过程:

 

一、发邮件的SMTP的协议默认是25端口,在网上查询资料发现阿里云是封掉了25端口的,以前尽然还没注意。

尽然知道了原因就好办了,首先会想到的是解封25端口,在阿里云逛了一圈找到了解封25端口的地方:

 

然后我就点击去申请解封25端口,等了一天,申请不通过!?,下面是阿里给我的原因:

看见这个结果当场就想吐槽了,不支持解封你把解封的操作放在这里干嘛!

 

二、尽然解封这个方法行不通,那就只有使用上面推荐的其他端口,下面是springboot 的配置:

如下添加spring.mail.properties.mail.smtp.socketFactory.portspring.mail.properties.mail.smtp.socketFactory.class两个参数的配置

 

spring: 
    mail:
        host: smtp.163.com
        username: ******
        password: *****
        default-encoding: UTF-8
        properties:
          mail:
            smtp:
              auth: true
              starttls:
                enable: true
                required: true
              socketFactory:
                class: javax.net.ssl.SSLSocketFactory
                port: 465

 然后部署在阿里的服务器上去就能正常发送邮件了。

 

为了使用Spring Boot发送邮件,您需要按照以下步骤进行操作: 1. 引入相关依赖:在您的项目中,需要引入`spring-boot-starter-mail`依赖。这可以通过在您的`pom.xml`文件中添加以下代码来实现: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ``` 2. 配置邮箱基本信息:您需要在`application.properties`或`application.yml`文件中配置您的邮箱基本信息,包括SMTP服务器地址、端口、用户名和密码等。您可以根据您使用的邮箱提供商提供的信息进行配置。 3. 创建邮件服务类:您可以创建一个邮件服务类,例如`MailService`。在该类中,您可以注入`JavaMailSender`对象,并使用其`send()`方法发送邮件。 4. 发送简单邮件:对于发送简单的文本邮件,您可以使用以下代码示例: ```java @Autowired private JavaMailSender javaMailSender; public void sendSimpleMail(String subject, String text, String to) { SimpleMailMessage message = new SimpleMailMessage(); message.setSubject(subject); message.setText(text); message.setTo(to); javaMailSender.send(message); } ``` 5. 发送带有模板的邮件:如果您想发送带有模板的邮件,您可以使用`Freemarker`或`Thymeleaf`等模板引擎。您可以创建一个邮件模板,例如`template.html`,并在代码中使用模板引擎填充模板内容。以下是一个使用`Freemarker`的示例代码: ```java @Autowired private JavaMailSender javaMailSender; @Autowired private Configuration configuration; public void sendTemplateMail(String subject, Map<String, Object> model, String to) throws MessagingException, IOException, TemplateException { MimeMessage mimeMessage = javaMailSender.createMimeMessage(); MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true); Template template = configuration.getTemplate("template.html"); String html = FreeMarkerTemplateUtils.processTemplateIntoString(template, model); mimeMessageHelper.setSubject(subject); mimeMessageHelper.setText(html, true); mimeMessageHelper.setTo(to); javaMailSender.send(mimeMessage); } ``` 6. 发送带有附件的复杂邮件:如果您想发送带有链接和附件的复杂邮件,您可以使用以下示例代码: ```java @Autowired private JavaMailSender javaMailSender; public void sendHtmlMail(String subject, String html, Map<String, String> attachments, String to) throws MessagingException { MimeMessage mimeMessage = javaMailSender.createMimeMessage(); MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true); mimeMessageHelper.setSubject(subject); mimeMessageHelper.setText(html, true); mimeMessageHelper.setTo(to); for (Map.Entry<String, String> entry : attachments.entrySet()) { String attachmentName = entry.getKey(); String attachmentPath = entry.getValue(); FileSystemResource file = new FileSystemResource(attachmentPath); mimeMessageHelper.addAttachment(attachmentName, file); } javaMailSender.send(mimeMessage); } ``` 请根据您的实际需求选择适合的方法,并根据您的项目进行相应的配置和调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SpringBoot整合(三)SpringBoot发送邮件](https://blog.csdn.net/qq_44665283/article/details/128809872)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值