又是新的一年,發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
僅供參考。
希望病毒趕緊退散,👴還想早日工作呢。