本人刚开始写博客,如果朋友参考示例没有解决掉问题,麻烦给我留言,或提出建议,以后改善,谢谢朋友的赏光!
以下是代码:
MailSender类:
package com.hr.mail;
import javax.mail.internet.MimeMessage;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
public class MailSender {
private JavaMailSender mailSender;
private String fromSource;
public void send(SimpleMailMessage message){
mailSender.send(message);
}
public void send(MimeMessage message){
mailSender.send(message);
}
public JavaMailSender getMailSender() {
return mailSender;
}
public void setMailSender(JavaMailSender mailSender) {
this.mailSender = mailSender;
}
public String getFromSource() {
return fromSource;
}
public void setFromSource(String fromSource) {
this.fromSource = fromSource;
}
}
spring-mail.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd"
>
<context:property-placeholder location="classpath:mail.properties" ignore-unresolvable="true"/>
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="${mail.host}"></property>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">${mail.smtp.auth}</prop><!-- SMTP服务器是否需要用户认证,默认为false -->
<prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop><!-- IO连接超时时间,单位为毫秒,默认为永不超时 -->
<prop key="mail.smtp.socketFactory.fallback">${mail.smtp.socketFactory.fallback}</prop><!-- 默认为true,设置为true时,当使用指定的socket类创建socket失败后,将使用java.net.Socket创建socket -->
<!-- <prop key="mail.smtp.starttls.enable">true</prop> --><!-- 使用的邮件服务是否支持STARTTLS加密 -->
</props>
</property>
<property name="username" value="${mail.username}"></property>
<property name="password" value="${mail.password}"></property>
<property name="port" value="${mail.port}"></property>
</bean>
<bean id="mailSenders" class="com.hr.mail.MailSender">
<property name="mailSender" ref="mailSender"></property>
<property name="fromSource" value="${mail.form}"></property>
</bean>
</beans>
mail.properties文件:
mail.host=发送邮箱的服务器地址
mail.username=发送邮箱的用户名
mail.password=发送邮箱的密码
#邮箱端口
mail.port=25
mail.form=发送邮箱地址
#SMTP服务器是否需要用户认证,默认为false
mail.smtp.auth=true
#IO连接超时时间,单位为毫秒,默认为永不超时
mail.smtp.timeout=25000
#默认为true,设置为true时,当使用指定的socket类创建socket失败后,将使用java.net.Socket创建socket
mail.smtp.socketFactory.fallback=false
sendMail.java:
public class QuartzJob{
@Autowired
private MailSender mailSenders;
private void sendUserSalaryMail(String title,String content,
String filePath,String emailAddress,String sendAddress){
try {
File file = new File(filePath); //附件本地路径
JavaMailSender sender = mailSenders.getMailSender();
MimeMessage message = sender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(sendAddress); //发送邮箱地址
helper.setTo(emailAddress); //目标邮箱地址
helper.setSubject(title); //邮箱主题
helper.setText(content); //邮箱内容
helper.addAttachment(file.getName(), file); //添加附件
mailSenders.send(message);
} catch (MessagingException e) {
logger.error(e);
}
}
}
这样大功就搞成了。
效果图: