java实现发送邮件

这篇具有很好参考价值的文章主要介绍了java实现发送邮件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文介绍下java实现邮件的发送,意在网站用户评论时能够及时通知站长和用户评论被回复后能够及时通知用户。

下文介绍下具体实现。

java实现

首先引入springboot的邮箱依赖

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

配置邮箱参数,这里以qq邮箱作为示例

spring:
    mail:
        host: smtp.qq.com #qq邮箱
        username:             #用户名,填qq邮箱地址。例如xxx@qq.com
        password:             #qq邮箱授权码,网上搜索怎么获得

此时就差不多了,接下来实现邮箱工具类

@Component
public class MailUtil {
    @Value("${spring.mail.username}")
    private String from; //这是发送人
    @Autowired
    JavaMailSender javaMailSender;
    public ResponseDto sendMail(String to,String subject,String content){
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom(from);
        simpleMailMessage.setTo(to);
        simpleMailMessage.setSubject(subject);
        simpleMailMessage.setText(content);
        javaMailSender.send(simpleMailMessage);
        return ResponseDto.Ok();
    }
}

此时调用MailUtil里的sendMail方法就能实现发送邮件了。

实践中发现每次都需要等待邮件发送成功后接口才会返回,不符合我们的实际需求。故需在发送邮件时开辟一个新线程,即可满足我们的需求。

为了减少大规模请求下创建线程的开销,引入线程池来处理发送邮件事件。

线程池

使用**@Configuration注解保证初始化线程池只有一次,使用@Bean注解在程序启动时就注入到IOC容器**内,这样可以保证程序启动后就会初始化线程池。

@Configuration
@Slf4j
public class ThreadPool {
    private Integer maxPoolSize = Runtime.getRuntime().availableProcessors()*5;
    private Integer corePoolSize = 5;

    @Bean
    public ExecutorService buildThreadPool() {
        log.info("开始创建线程池");
        ExecutorService pool = new ThreadPoolExecutor(corePoolSize, maxPoolSize, 60L, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(100));
        return pool;
    }
}

ThreadPoolExecutor感兴趣的可以自己看,在此不过多介绍。

现在就可以使用线程来发送邮件了。

threadPool.buildThreadPool().submit(new Runnable() {
    @Override
    public void run() {
        String to,subject = null;
        if(comment.getParentId() == -1){
        	to = mail;
        	subject = "有人在你的博客评论了";
        } else{
       		to = commentService.getById(comment.getParentId()).getUserEmail();
        	subject = "有人回复了你的评论";
        }
        mailUtil.sendMail(to,subject,"有人回复了你的评论,点击链接跳转到评论回复页面,https://xiaoliu.life/p/"+comment.getBlogId());
    }
});

最后实现效果:

java 发送邮件,java,spring,spring boot

原文链接:https://xiaoliu.life/p/20230516a文章来源地址https://www.toymoban.com/news/detail-595599.html

到了这里,关于java实现发送邮件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot 发送邮件,以及邮件工具类 并且解决spring-boot-starter-mail 发送邮件附件乱码或者文件错乱

    1、设置系统值 System.setProperty(“mail.mime.splitlongparameters”, “false”); 2、 在创建对象的时候定义编码格式(utf-8): MimeMessageHelper helper = new MimeMessageHelper(mes, true, “utf-8”); 3、 其次,在添加附件的时候,附件名是需要定义编码的 helper.addAttachment(MimeUtility.encodeWord(附件名,“utf-8”

    2024年02月15日
    浏览(68)
  • Spring Boot中发送邮件时,如何让发件人显示别名

    之前,我们通过一系列文章,介绍了如何在Spring Boot中发送邮件: 发送邮件 添加附件 引用静态资源 邮件模版 已经包含了大部分的应用场景。但最近DD在做YouTube中文配音的时候,碰到一个问题: 如上图所示,收件人在客户端收到的时候,显示的名称是邮箱的前缀,而不是我

    2024年02月08日
    浏览(50)
  • Spring Schedule:Spring boot整合Spring Schedule实战讲解定时发送邮件的功能

    🎉🎉 欢迎光临,终于等到你啦 🎉🎉 🏅我是 苏泽 ,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏 《Spring 狂野之旅:从入门到入魔》 🚀 本专栏带你从Spring入门到入魔   这是苏泽的个人主页可以看到我其他的内容哦👇👇 努力的苏泽 http://suzee.blog.

    2024年03月14日
    浏览(112)
  • Spring Email实现邮件发送功能

    (本篇内容是博主在学习“牛客社区”这个项目时的笔记整理,为了方便自己以后查看,希望也能帮助到其他人。若有不恰当的地方还望指正~) 目录 一、邮箱设置 1. 开启POP3/SMTP服务,获取授权码 二、 使用Spring Email 1. 导入jar包  2. 在项目的propertites文件中写入如下配置 三、

    2023年04月25日
    浏览(43)
  • 【Java Web】发送邮件 Spring Mail+Thymeleaf

    1. 邮箱启用SMTP服务 生成授权码,然后看一下发送邮件服务器及端口。 2. Spring Mail 2.1 在pom中导入jar包 2.2 邮箱参数设置 2.3 使用JavaMailSender发送邮件,建立mailClient.java工具类 2.4 发邮件测试单元 3.模板引擎 在测试类中注入模板引擎,使用 testHtmlMail 方法发送html类型邮件。如果没

    2024年02月11日
    浏览(49)
  • java实现发送邮件

    本文介绍下java实现邮件的发送,意在网站用户评论时能够及时通知站长和用户评论被回复后能够及时通知用户。 下文介绍下具体实现。 java实现 首先引入springboot的邮箱依赖 配置邮箱参数,这里以 qq邮箱 作为示例 此时就差不多了,接下来实现邮箱工具类 此时调用 MailUtil 里

    2024年02月16日
    浏览(47)
  • Java Email 实现邮件发送

    Email:电子邮件。 在当今社会有着重要的应用,传统的邮件是通过邮局投递,然后从一个邮局到另一个邮局,最终到达用户的邮箱。 在电子邮件中也有着相似的发送过程:电子邮件是从用户电脑的邮件软件发送到邮件服务器上,经过若干个邮件服务器的中转,最终到达对方邮

    2024年02月03日
    浏览(44)
  • 用Java实现发送邮件——Java Email

            众所周知,Email就是邮件,在科技高速发展的今天我们也使用了非常之久的电子邮件,我们熟知的邮件有自己的QQ邮箱、网易邮箱大师还有Outlook等都是用来发送邮件的,而用Java程序也是可以用来发送邮件的。 首先我们先对比一下传统的邮件信息是如何发送的:传

    2024年02月05日
    浏览(45)
  • 【Java发送邮箱】spring boot 发送邮箱

    打开网页版的QQ邮箱, 登录邮箱,进入设置-》帐户 然后,在“帐户”设置中,找到服务设置项,进行设置,如下: 开启POP3/SMTP服务器,验证密保   用正确的手机好发送正确的验证内容到指定的号码,成功获取授权码

    2024年01月23日
    浏览(58)
  • springboot(java)使用javamail实现邮件的接收、转发、发送、清除

    最近在弄邮件相关的功能,被搞的头大,很多找的方法根本不知道该怎么往下走,就目前为止, 经过各种的碰壁和失败,就整理出来如何使用javamail实现邮件的接收、转发、发送、清除 不单单是分享,也为我后续查找更方便做一个记录 在正式发送邮件之前,我们应该对邮件

    2024年02月04日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包