代码如下:
public class xxx{
//javaMailSender该功能在spring-context-support这个jar包中,包名:org.springframework.mail.javamail.JavaMailSenderImpl;
@Autowired
private JavaMailSenderImpl javaMailSender;
public void sendEmail() {
String username = this.javaMailSender.getUsername();
String password = this.javaMailSender.getPassword();
try {
String reportName = "应用安全扫描弱点日增量文件.xml";
String title = "漏洞扫描详情文件";//我要发送的邮件的标题
MimeMessage msg = this.javaMailSender.createMimeMessage();
MimeMessageHelper message = new MimeMessageHelper(msg, true,
"UTF-8");
String from = this.javaMailSender.getUsername();
message.setFrom(from);
message.setSubject(title);
message.setTo(getToEmail());
message.setText("详见附件", true);//我要发送的邮件的正文
String sendName="";
try {
sendName = MimeUtility.encodeText(reportName);//附件转码,避免中文乱码
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
message.addAttachment(sendName, new FileSystemResource("D:/sendXml/"+reportName));//参数1:要发送的附件名称 参数2:要发送的附件
this.javaMailSender.send(msg);
} catch (Exception ex) {
ex.printStackTrace();
this.logger.error("邮件发送失败,ex=" + ex.getMessage());
}
}
}
=============================================================
以下是applicationContext.xml中的配置
<bean id="javaMailSenderImpl" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<!-- <property name="host" value="smtp.139.com" /> 这是非代理模式填写的139邮箱方式 -->
<property name="port" value="9025" /> <!-- port根据发件人邮箱类型填写,例qq邮箱、139邮箱、sina邮箱等等,端口都是不一样的,如果是代理的话,填写代理服务器设置的商品,此处demo为代理邮箱 -->
<property name="host" value="127.0.0.1" /> <!-- host根据发件人邮箱类型填写,如果是代理的话,填写代理服务器设置的host,此处demo为代理邮箱 -->
<property name="username" value="159******@139.com" /> <!-- 发件人邮箱 -->
<property name="password" value="hdlh@2605" /> <!-- 发件人邮箱密码 -->
<property name="defaultEncoding" value="UTF-8"></property>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
<!-- <prop key="mail.smtp.ssl.enable">true</prop> -->
<!-- <prop key="mail.smtp.socks.host">10.243.184.40</prop> -->
<!-- <prop key="mail.smtp.socks.port">8081</prop> -->
<!-- <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> -->
</props>
</property>
</bean>