SpringBoot+SpringDataJPA+Mail 實現批量給好友發送新年祝福郵件

   又是新的一年,發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
[email protected]
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

僅供參考。

希望病毒趕緊退散,👴還想早日工作呢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章