Spring带附件邮件发送示例

本人刚开始写博客,如果朋友参考示例没有解决掉问题,麻烦给我留言,或提出建议,以后改善,谢谢朋友的赏光!
以下是代码:
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);
            }
        }
}

这样大功就搞成了。
效果图:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值