注意
想把这个工具类定义成工具类,所以所有的方法都是静态方法,使用的变量处理参数理所当然都是静态变量
期初使用的是@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;
}
携带附件的邮件
群发携带附件的邮件