Spring学习笔记-利用Spring发送邮件

Spring提供了一个接口来实现邮件发送,并对JavaMail底层API进行了封装,使用起来更方便。

1)在spring-bean.xml中声明邮件服务bean

<!-- 分解数据库配置 -->
        <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
             <property name="locations">
                 <list>
                      <value>classpath:mailConfig.properties</value>
                      <value>classpath:dbConfig.properties</value>
                 </list>
             </property>
        </bean>
  <!-- spring mail -->
        <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
            <property name="host" value="${host}"/>
            <property name="port" value="${sendPort}"/>
            <property name="javaMailProperties">
                <props>
                    <prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
                    <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop>
                </props>
            </property>
            <property name="username" value="${username}"/>
            <property name="password" value="${password}"/>
        </bean>

注:邮件配置如下

host=smtp.126.com
sendPort=25
mail.smtp.auth=true
mail.smtp.timeout=25000
username=neuropathies@126.com
password=zd1991..

2)发送简单邮件

private ApplicationContext applicationContext;
    @Before
    public void init(){
          applicationContext = new ClassPathXmlApplicationContext("spring-beans.xml");
}
/**
     * 简单邮件.
     * */
    //@Test
    public void springSimpleMail1(){
        try{

                JavaMailSender javaMailSender = (JavaMailSender)this.applicationContext.getBean("mailSender");

                System.out.println(javaMailSender);

                //创建简单邮件对象
                SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
                simpleMailMessage.setTo("zhangdong@mochasoft.com.cn");  //接收人
                simpleMailMessage.setFrom("neuropathies@126.com");          // 发送人的别名
                simpleMailMessage.setSubject("测试邮件");        // 邮件主题
                simpleMailMessage.setText("这是一封测试邮件");      // 设置邮件内容
                javaMailSender.send(simpleMailMessage);        //发送

        }catch(Exception e){
            e.printStackTrace();
        }
    }

2)发送html格式的邮件

private ApplicationContext applicationContext;
    @Before
    public void init(){
          applicationContext = new ClassPathXmlApplicationContext("spring-beans.xml");
}

/**
     * html格式的邮件
     * */
    //@Test
    public void springMailTest2(){

        JavaMailSender javaMailSender = (JavaMailSender)this.applicationContext.getBean("mailSender");

        MimeMessage mimeMessage = javaMailSender.createMimeMessage();

        MimeMessageHelper mimeMessageHelper;
        try {
            //设置utf-8编码
            mimeMessageHelper = new MimeMessageHelper(mimeMessage,true,"UTF-8");

            mimeMessageHelper.setTo("758751094@qq.com");
            mimeMessageHelper.setFrom("neuropathies@126.com");
            mimeMessageHelper.setSubject("测试邮件");
            mimeMessageHelper.setText("<html><head></head><body><h1>hello!!chao.wang</h1></body></html>",true);
            javaMailSender.send(mimeMessage);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

3)发送带附件的邮件

private ApplicationContext applicationContext;
    @Before
    public void init(){
          applicationContext = new ClassPathXmlApplicationContext("spring-beans.xml");
}

/**
     * 带附件的email
     * */
    @Test
    public void springMailTest3(){

        JavaMailSender javaMailSender = (JavaMailSender)this.applicationContext.getBean("mailSender");

        try {
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            //添加附件支持和 编码设置
            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true,"UTF-8");

            messageHelper.setTo("758751094@qq.com");
            messageHelper.setFrom("neuropathies@126.com");
            messageHelper.setSubject("带附件的测试邮件");
            messageHelper.setText("<html><head></head><body><h1>hello!!chao.wang</h1></body></html>",true);

            //附件内容:图片
            messageHelper.addInline("a", new File("F:" + File.separator + "1.jpg"));
            messageHelper.addInline("b", new File("F:" + File.separator + "2.jpg"));

            //文件附件
            File attachmentFile = new File("F:" + File.separator + "Toduban.jsp");
            //用MineUtility.encodeWord()解决 附件名称乱码问题
            messageHelper.addAttachment(MimeUtility.encodeWord(attachmentFile.getName()), attachmentFile);

            javaMailSender.send(mimeMessage);

        } catch (Exception e) {

        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值