注意
想把这个工具类定义成工具类,所以所有的方法都是静态方法,使用的变量处理参数理所当然都是静态变量
期初使用的是@Autowired 和 @Value进行注解,但是这两个注解是依赖于实例,静态方法是不依赖实例的
,所以 from 在发送邮件的时候一直是null(不知道@Autowired 为什么能注入成功)
改变思路: 将类注解为@Component
,确保能够被IOC容器检测到 使用非静态方法代替直接注入
,使用方法进行注入
@Component
public class EmailHelper { private static JavaMailSender mailSender; private static String from; @Autowired public void setJavaMailSender ( JavaMailSender javaMailSender) { EmailHelper . mailSender = javaMailSender; } @Value ( "${spring.mail.username}" ) public void setFrom ( String from) { EmailHelper . from = from; }
}
简易邮件
public static boolean sendEmail ( String to , String subject, String content) { try { SimpleMailMessage mailMessage = new SimpleMailMessage ( ) ; mailMessage. setFrom ( from) ; mailMessage. setSubject ( subject) ; mailMessage. setText ( content) ; mailMessage. setTo ( to ) ; mailSender. send ( mailMessage) ; } catch ( MailException e) { throw new RuntimeException ( e) ; } return true ; }
群发简易邮件
public static boolean sendEMailMass ( List < String > tos, String subject, String content) { boolean result = true ; for ( String to : tos) { boolean b = sendEmail ( to , subject, content) ; if ( ! b) { result = false ; } } return result;
}
携带附件的邮件
群发携带附件的邮件