mail依赖
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.4</version>
</dependency>
spring配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="mailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="protocol" value="smtp" />
<property name="host" value="smtp.163.com" />
<property name="port" value="465" />
<property name="username" value="邮箱名@163.com" />
<property name="password" value="密码" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.ssl.enable">true</prop>
</props>
</property>
</bean>
<bean id="mailUtil" class="pdsu.xps.erp.util.MailUtil">
<property name="javaMailSender" ref="mailSender"></property>
<property name="fromAddress" value="邮箱名@163.com"></property>
</bean>
</beans>
代码实现
邮件工具类
public class MailUtil {
private JavaMailSender javaMailSender;
private String fromAddress;
public void setJavaMailSender(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
public void setFromAddress(String fromAddress) {
this.fromAddress = fromAddress;
}
public void sendMail(String toAddress, String subject, String text) throws MessagingException {
MimeMessage mime = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mime);
helper.setSubject(subject);
helper.setFrom(fromAddress);
helper.setTo(toAddress);
helper.setText(text);
javaMailSender.send(mime);
}
}
业务逻辑代码
public void sendStoreAlertMail() throws MessagingException {
List<StoreAlert> storeAlertList = storedetailDao.getStoreAlertList();
int cnt = storeAlertList == null ? 0 : storeAlertList.size();
if (cnt > 0) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
mailUtil.sendMail(toAddress, subject.replace("[time]", sdf.format(new Date())),
text.replace("[count]", String.valueOf(cnt)));
} catch (MessagingException e) {
e.printStackTrace();
throw new ErpException("发送预警邮件失败");
}
} else {
throw new ErpException("没有需要预警的商品");
}
}
action处理
public void sendAlertMail() {
try {
storedetailBiz.sendStoreAlertMail();
ajaxReturn(true, "发送成功");
} catch (MessagingException e) {
ajaxReturn(false, "无法发送邮件");
e.printStackTrace();
} catch (ErpException e) {
ajaxReturn(false, e.getMessage());
}
}