前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot发送电子邮件

Spring Boot发送电子邮件

作者头像
黑洞代码
发布2021-10-14 11:11:19
1.4K0
发布2021-10-14 11:11:19
举报
文章被收录于专栏:落叶飞翔的蜗牛

通过使用Spring Boot RESTful Web服务,可以发送包含Gmail传输层安全性的电子邮件。在本章中,详细了解如何使用此功能。

首先,需要在构建配置文件中添加Spring Boot Starter Mail依赖项。

Maven用户可以将以下依赖项添加到pom.xml 文件中。

代码语言:javascript
复制
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

主 Spring Boot 应用程序类文件的代码如下 -

代码语言:javascript
复制
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class EmailappApplication {
   public static void main(String[] args) {
      SpringApplication.run(EmailappApplication.class, args);
   }
}

可以编写一个简单的Rest API,以便在Rest Controller类文件中发送到电子邮件,如图所示。

代码语言:javascript
复制
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class EmailController {
   @RequestMapping(value = "/sendemail")
   public String sendEmail() {
      return "Email sent successfully";
   }   
}

编写一个方法来发送带有附件的电子邮件。定义mail.smtp属性并使用PasswordAuthentication。

代码语言:javascript
复制
private void sendmail() throws AddressException, MessagingException, IOException {
   Properties props = new Properties();
   props.put("mail.smtp.auth", "true");
   props.put("mail.smtp.starttls.enable", "true");
   props.put("mail.smtp.host", "smtp.gmail.com");
   props.put("mail.smtp.port", "587");

   Session session = Session.getInstance(props, new javax.mail.Authenticator() {
      protected PasswordAuthentication getPasswordAuthentication() {
         return new PasswordAuthentication("test@gmail.com", "<your password>");
      }
   });
   Message msg = new MimeMessage(session);
   msg.setFrom(new InternetAddress("test@gmail.com", false));

   msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("test@gmail.com"));
   msg.setSubject("Spring Boot test email");
   msg.setContent("Spring Boot test email", "text/html");
   msg.setSentDate(new Date());

   MimeBodyPart messageBodyPart = new MimeBodyPart();
   messageBodyPart.setContent("Spring Boot test email", "text/html");

   Multipart multipart = new MimeMultipart();
   multipart.addBodyPart(messageBodyPart);
   MimeBodyPart attachPart = new MimeBodyPart();

   attachPart.attachFile("/var/tmp/image19.png");
   multipart.addBodyPart(attachPart);
   msg.setContent(multipart);
   Transport.send(msg);   
}

现在,从Rest API调用上面的sendmail()方法,如图所示 -

代码语言:javascript
复制
@RequestMapping(value = "/sendemail")
public String sendEmail() throws AddressException, MessagingException, IOException {
   sendmail();
   return "Email sent successfully";   
}

现在,可以创建一个可执行的JAR文件,并使用下面显示的Maven或Gradle命令运行Spring Boot应用程序 - 对于Maven,可以使用如下所示的命令 -

代码语言:javascript
复制
mvn clean install

在“BUILD SUCCESS”之后,可以在target目录下找到JAR文件。

现在,使用下面给出的命令运行JAR文件 -

代码语言:javascript
复制
java –jar <JARFILE>

看到应用程序已在Tomcat端口8080上启动。

现在,从Web浏览器中打开以下URL => http://localhost:8080/sendemail ,

发送成功后,开登录邮件账户将收到一封电子邮件。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 落叶飞翔的蜗牛 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档