package com.kingschan.blog.services.system.impl;
import com.kingschan.blog.dao.UserDao;
import com.kingschan.blog.po.User;
import com.kingschan.blog.services.system.EmailNotifyService;
import com.kingschan.blog.util.RegexUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.mail.internet.MimeMessage;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
/**
* Created by kingschan on 2017/2/17.
*/
@Service
public class EmailNotifyServiceImpl implements EmailNotifyService {
@Qualifier("UserDaoImpl")
@Autowired
private UserDao userDao;
@Resource(name="sender")
private JavaMailSenderImpl mail;
@Value("${system.notice.account}")
private String fromAccount;
@Override
public void sendEmailToUsersByText(String userNamesText, String mailTitle, String mailContent) throws Exception {
String target= RegexUtil.findStrByRegx(userNamesText, "\\@\\w+");
if (!target.isEmpty()) {
String[] users=target.replaceAll("\\@|\\:", "").split(",");
List<User> lis= userDao.getUsersByUserNames(users);
List<String> emails= new ArrayList<String>();
for (User u:lis) {
if (u.getUserEmailActivate()){
emails.add(u.getUserEmail());
}
}
if (emails.size()==0)return;
JavaMailSender sender =mail;
MimeMessage message = sender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true,"UTF-8");
helper.setTo(emails.toArray(new String[1]));
helper.setFrom(fromAccount);
helper.setSentDate(new Date());
helper.setSubject(mailTitle);
helper.setText(mailContent,true);// html: true
sender.send(message);
}
}
@Override
public void sendEmail(String emailAddress, String emailTitle, String emailContent) throws Exception {
if (null==emailAddress||null==emailTitle||null==emailContent) {
return;
}
JavaMailSender sender =mail;
MimeMessage message = sender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true,"UTF-8");
helper.setTo(emailAddress);
helper.setFrom(fromAccount);
helper.setSentDate(new Date());
helper.setSubject(emailTitle);
helper.setText(emailContent,true);// html: true
sender.send(message);
}
}