ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SpringBoot+SpringDataJPA+Mail 实现批量给好友发送新年祝福邮件

2020-01-30 11:07:08  阅读:301  来源: 互联网

标签:SpringDataJPA SpringBoot spring private simpleMailMessage mail Mail public subje


   又是新的一年,发qq祝福、微信祝福给好友都太捞了,不如整点新颖的活,给好友们发祝福邮件,一来闲着没事打发时间,二来也是为了zb。下边是代码,仅供参考:

1.依赖


   <dependencies>
        <!--支持jpa-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <!--支持web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--jdbc-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>
        <!--邮件服务-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>3.3</version>
        </dependency>
        <!--日志-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.21</version>
        </dependency>
    </dependencies>

2.application.properties

 

server.port=8888

#jdbc
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/daily?useUnicode=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver


#邮箱的账号
spring.mail.host= smtp.qq.com
spring.mail.username=xx@qq.com
spring.mail.password=xxxxxxx(非qq密码获取方式请百度)
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.starttls.enable=true
spring.mail.properties.mail.starttls.required=true

 

3.Controller

@RestController
@RequestMapping("/email")
public class    SendEmailController {
    private static Logger logger = LoggerFactory.getLogger(SendEmailController.class);

    @Autowired
    private SendEmailService sendEmailService;
    @Autowired
    private UserService  userService;

    /**
     * 邮件调用
     */
    @RequestMapping(value = "/simpleEmail", method = {RequestMethod.GET})
    public RspResult sendSimpleEmail(HttpServletRequest request) {
        RspResult rspResult = new RspResult();
        //去库中取用户邮箱
        List<User> userList = userService.findAll();
        System.out.println(userList.size());
        userList.forEach(user -> {
            sendEmailService.sendSimpleMail(user.getEmail(), "新年祝福", "可可爱的"+user.getUserName()+":新年快乐,新的一年里顺顺利利,发大财哦!最近出去记得戴口罩哦~");
        });

        rspResult.setStatus(200);
        rspResult.setMsg("调用成功");
        return rspResult;
    }
}

4.service

@Service
public class SendEmailService {

    private static Logger logger = LoggerFactory.getLogger(SendEmailService.class);

    @Autowired
    private JavaMailSender sender;


    @Value("${spring.mail.username}")
    private String fromMail;

    /**
     * 发送普通邮件
     *
     * @param toMail  收件方
     * @param subject 标题
     * @param content 邮件内容
     */
    public void sendSimpleMail(String toMail, String subject,  String content) {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom(fromMail);
        simpleMailMessage.setTo(toMail);
        simpleMailMessage.setSubject(subject);
        simpleMailMessage.setText(content);
        try {
            sender.send(simpleMailMessage);
            logger.info("发送给:{} 邮件已经发送。 subject:{}", toMail, subject);
        } catch (Exception e) {
            logger.info("发送给:{} send mail error subject:{}", toMail, subject);
            e.printStackTrace();
        }
    }
}

5.dao

@Repository
public interface UserDao  extends JpaRepository<User,Integer> {
    public List<User> findAll();
}

6.pojo

@Data
@Entity
@Table(name = "user")
@NoArgsConstructor
@AllArgsConstructor
public class User {
    @Id
    private Integer id;
    @Column(name = "username",nullable = false)
    private String userName;
    @Column(name = "email",nullable = false)
    private String Email;
}

 7.数据库表结构

 


Create Table

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) DEFAULT NULL,
  `email` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8

启动程序后,在浏览器总输入:http://localhost:8888/email/simpleEmai   即可开启程序。

以上是代码的主要部分,源码已经上传github:https://github.com/Upzzh/newYearWish

仅供参考。

希望病毒赶紧退散,

标签:SpringDataJPA,SpringBoot,spring,private,simpleMailMessage,mail,Mail,public,subje
来源: https://blog.csdn.net/weixin_41532316/article/details/104112647

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有