《pro Spring》学习笔记之使用Spring+James邮件服务器发送带有附件的HTML邮件

原创 2007年09月14日 22:13:00
 

首先,请参考这一片文章,配置好James邮件服务器

 http://blog.csdn.net/daryl715/archive/2007/09/14/1784869.aspx

发送带有附件的html邮件,和发送内嵌图片的邮件类型,唯独不同的是需要使用MimiMessageHelper的addAttachment方法

抽象类:

 

package ch15.SimpleFileMail;

import org.springframework.mail.javamail.JavaMailSenderImpl;

public abstract class AbstractMessageSender ...{
        
protected String to;
        
protected String from;
        
protected String subject;
        
protected String text;
        
protected JavaMailSenderImpl sender;
        
public String getTo() ...{
            
return to;
        }

        
public void setTo(String to) ...{
            
this.to = to;
        }

        
public String getFrom() ...{
            
return from;
        }

        
public void setFrom(String from) ...{
            
this.from = from;
        }

        
public String getSubject() ...{
            
return subject;
        }

        
public void setSubject(String subject) ...{
            
this.subject = subject;
        }

        
public String getText() ...{
            
return text;
        }

        
public void setText(String text) ...{
            
this.text = text;
        }

        
public JavaMailSenderImpl getSender() ...{
            
return sender;
        }

        
public void setSender(JavaMailSenderImpl sender) ...{
            
this.sender = sender;
        }

       
}

实现类:

 

package ch15.SimpleFileMail;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.MimeMessageHelper;

public class SimpleFileMessageSender extends AbstractMessageSender ...{
    
private MimeMessageHelper helper;
    
private MimeMessage msg;
    
private FileSystemResource img;
    
    
public FileSystemResource getImg() ...{
        
return img;
    }


    
public void setImg(FileSystemResource img) ...{
        
this.img = img;
    }


    
public void sendMessage()...{
        msg
=sender.createMimeMessage();
        
        
try ...{
            helper
=new MimeMessageHelper(msg,true); //使用内嵌资源时,需要额外配置一个true参数
            helper.setTo(to);
            helper.setFrom(from);
            helper.setSubject(subject);
            helper.setText(text,
true);//true表示text/html格式邮件
            helper.addAttachment("mail.jpg", img);  //加入一个名为abc的内嵌资源
            System.out.println(img);
        }
catch (Exception e) ...{
            System.out.println(e.getMessage());
        }

        
        sender.send(msg);
    }

        
}

 

配置文件:

 

<?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-2.0.xsd">
<bean id="sender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
  
<property name="host">
    
<value>king.cn</value>
  
</property> 
  
<property name="username">
    
<value>gaoxiang</value>
  
</property>
  
<property name="password">
    
<value>gaoxiang</value>
  
</property>
  
<property name="javaMailProperties">
        
<props>
           
<prop key="mail.smtp.auth">true</prop>
           
<prop key="mail.smtp.timeout">10000</prop>
        
</props>
  
</property>
</bean>

<bean id="messageSender" class="ch15.SimpleFileMail.SimpleFileMessageSender">
  
<property name="sender">
    
<ref bean="sender"/>
  
</property>
  
<property name="to">
    
<value>daryl715@tom.com</value>
  
</property>
  
<property name="from">
    
<value>gaoxiang@king.cn</value>
  
</property>
  
<property name="subject">
    
<value>html mime mail</value>
  
</property>
  
<!-- 此处用cid:abc  表示实用的一个内嵌资源,名称为abc -->
  
<property name="text">
    
<value><![CDATA[<html><head><body>this is a file mail</body></head></html>]]></value>
  
</property>
  
<property name="img">
    
<bean class="org.springframework.core.io.FileSystemResource">
      
<constructor-arg>
        
<bean class="java.io.File">
          
<constructor-arg>
            
<value>./src/ch15/SimpleFileMail/mail.jpg</value>
          
</constructor-arg>
        
</bean>
      
</constructor-arg>
    
</bean>
  
</property>
</bean>


</beans>

 

测试代码:

 

package ch15.SimpleFileMail;

import java.io.File;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SimpleFileTest ...{


    
public static void main(String[] args) throws Exception ...{
        ApplicationContext context 
= new ClassPathXmlApplicationContext(
                
"ch15/SimpleFileMail/applicationContext.xml");
        SimpleFileMessageSender mailSender 
= (SimpleFileMessageSender) context
                .getBean(
"messageSender");
        
for (int i = 0; i < 10; i++...{
            mailSender.sendMessage();
            System.out.println(
"成功");
            Thread.sleep(
2000); //发送后延时2秒钟
        }

    }

}

spring简单邮件发送(文本/html/图片/附件)

Spring邮件抽象层的主要包为org.springframework.mail。它包括了发送电子邮件的主要接口MailSender,和值对象SimpleMailMessage,它封装了简单邮件的属性...
  • johnjobs
  • johnjobs
  • 2014年12月26日 10:31
  • 2338

Spring 4发送HTML/纯文本邮件并携带附件

原文链接:http://www.codeweblog.com/spring-4%E5%8F%91%E9%80%81html-%E7%BA%AF%E6%96%87%E4%BB%B6%E9%82%AE%E...
  • nimeijian
  • nimeijian
  • 2016年08月02日 18:57
  • 1251

《pro Spring》学习笔记之使用Spring+James邮件服务器发送内嵌图片的HTML邮件

 首先,请参考这一片文章,配置好James邮件服务器 http://blog.csdn.net/daryl715/archive/2007/09/14/1784869.aspx为了发送一副内嵌图片的H...
  • daryl715
  • daryl715
  • 2007年09月14日 16:59
  • 1154

《pro Spring》学习笔记之使用Spring+James邮件服务器发送普通HTML邮件

首先,请参考这一片文章,配置好James邮件服务器 http://blog.csdn.net/daryl715/archive/2007/09/14/1784869.aspx 发送MIME消息的一个主...
  • daryl715
  • daryl715
  • 2007年09月14日 16:09
  • 1313

《pro Spring》学习笔记之使用Spring+James邮件服务器发送普通文本邮件

首先,请参考这一片文章,配置好James邮件服务器 http://blog.csdn.net/daryl715/archive/2007/09/14/1784869.aspx由于使用免费邮(sohu,...
  • daryl715
  • daryl715
  • 2007年09月14日 11:26
  • 1209

利用spring mail 发送带附件的邮件

http://pan.baidu.com/s/1mhC86NI
  • zy_281870667
  • zy_281870667
  • 2016年05月26日 15:48
  • 2697

JavaMail发送邮件(普通邮件,html邮件以及附件邮件)

实现普通邮件,html邮件以及附件邮件的发送;此例子使用的是163邮箱 邮箱的服务地址,邮件用户名密码在配置文件中读取;...
  • shfei10100
  • shfei10100
  • 2013年12月25日 16:08
  • 7831

SpringBoot-Thymeleaf发送模板带附件邮件

SpringBoot-Thymeleaf发送模板带附件邮件
  • lunatic_xian
  • lunatic_xian
  • 2017年09月20日 11:24
  • 835

jenkins发送带附件(logfile.log和index.html)的邮件配置

先进入到job里面,在Attachment中按照规矩添加文件就好了   此处是以workspace作为根目录的,logfile.log文件刚好就在根目录上,所以直接写上,多个文件的话用逗号...
  • qiuxuncao
  • qiuxuncao
  • 2016年10月24日 15:03
  • 338

shell sendmail发送带附件的html格式邮件

哎,今天一直在找怎么发送带附件的有是html格式的邮件.如果只是html格式或者只是带附件的都好弄,但是这两个都要弄的话还是很费时间.但是,终于在一篇好帖的帮助下弄出来了. http://www.z...
  • w20175357
  • w20175357
  • 2017年03月15日 20:57
  • 863
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《pro Spring》学习笔记之使用Spring+James邮件服务器发送带有附件的HTML邮件
举报原因:
原因补充:

(最多只允许输入30个字)