zoukankan      html  css  js  c++  java
  • spring 发邮件

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt116

    Spring邮件抽象层的主要包为org.springframework.mail。它包括了发送电子邮件的主要接口MailSender,和值对象SimpleMailMessage,它封装了简单邮件的属性如fromto,ccsubject,text。 包里还包含一棵以MailException为根的checked Exception继承树,它们提供了对底层邮件系统异常的高级别抽象。 要获得关于邮件异常层次的更丰富的信息,请参考Javadocs。

    为了使用JavaMail中的一些特色, 比如MIME类型的信件, Spring提供了MailSender的一个子接口, 即org.springframework.mail.javamail.JavaMailSender。Spring还提供了一个回调接口org.springframework.mail.javamail.MimeMessagePreparator, 用于准备JavaMail的MIME信件。

    1.发送简单的文本邮件

    package  net.xftzr.mail;
    import  java.util.Properties;

    import  org.springframework.mail.SimpleMailMessage; 
    import  org.springframework.mail.javamail.JavaMailSenderImpl; 

    /** 
     * 本类测试简单邮件 
     * 直接用邮件发送
     *  @author  Administrator
     *
      */ 
    public   class  SingleMailSend { 
       public   static   void  main(String args[]){ 
        JavaMailSenderImpl senderImpl  =   new  JavaMailSenderImpl(); 
       // 设定mail server  
        senderImpl.setHost( " smtp.163.com " );
         
         // 建立邮件消息  
        SimpleMailMessage mailMessage  =   new  SimpleMailMessage(); 
         // 设置收件人,寄件人 用数组发送多个邮件
         // String[] array = new String[]    {"sun111@163.com","sun222@sohu.com"};    
         // mailMessage.setTo(array);  
        mailMessage.setTo( " toEmail@sina.com " ); 
        mailMessage.setFrom( " userName@163.com " ); 
        mailMessage.setSubject( " 测试简单文本邮件发送! " ); 
        mailMessage.setText( " 测试我的简单邮件发送机制!! " ); 
        
        senderImpl.setUsername( " userName " ) ;  //  根据自己的情况,设置username 
        senderImpl.setPassword( " password " ) ;  //  根据自己的情况, 设置password 
        
     Properties prop  =   new  Properties() ;
     prop.put( " mail.smtp.auth " ,  " true " ) ;  //  将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确 
     prop.put( " mail.smtp.timeout " ,  " 25000 " ) ; 
     senderImpl.setJavaMailProperties(prop);  
         // 发送邮件  
        senderImpl.send(mailMessage); 
         
        System.out.println( " 邮件发送成功.. " ); 
         } 
      } 


    2.发送简单的html邮件 
    org.springframework.mail.javamail.MimeMessageHelper是处理JavaMail邮件常用的顺手组件之一。它可以让你摆脱繁复的javax.mail.internetAPI类

    package net.xftzr.mail;


    import java.util.Properties;

    import javax.mail.internet.MimeMessage; 
    import org.springframework.mail.javamail.JavaMailSenderImpl; 
    import org.springframework.mail.javamail.MimeMessageHelper; 
    /** 
     * 本类测试html邮件 
     * @author sunny 
     * 
     */ 
    public class HTMLMailDemo { 
    /** 
    * @param args 
    */ 
    public static void main(String[] args) throws Exception{ 
        JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); 
        
        //设定mail server 
        senderImpl.setHost("smtp.163.com"); 
        
        //建立邮件消息,发送简单邮件和html邮件的区别 
        MimeMessage mailMessage = senderImpl.createMimeMessage(); 
        MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage); 
                 
        //设置收件人,寄件人 
        messageHelper.setTo("Mailto@sina.com"); 
        messageHelper.setFrom("username@163.com"); 
        messageHelper.setSubject("测试HTML邮件!"); 
        //true 表示启动HTML格式的邮件 
        messageHelper.setText("<html><head></head><body><h1>hello!!spring html Mail</h1></body></html>",true); 
        
        senderImpl.setUsername("username") ; // 根据自己的情况,设置username
        senderImpl.setPassword("password") ; // 根据自己的情况, 设置password
        Properties prop = new Properties() ;
        prop.put("mail.smtp.auth", "true") ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
        prop.put("mail.smtp.timeout", "25000") ; 
        senderImpl.setJavaMailProperties(prop); 
        //发送邮件 
        senderImpl.send(mailMessage); 
        
        System.out.println("邮件发送成功.."); 


    3.发送嵌套图片的邮件

    Email允许添加附件,也允许在multipart信件中内嵌资源。内嵌资源可能是你在信件中希望使用的图像,或者样式表,但是又不想把它们作为附件。

    package net.xftzr.mail;

    import java.io.File; 
    import java.util.Properties;

    import javax.mail.internet.MimeMessage; 
    import org.springframework.core.io.FileSystemResource; 
    import org.springframework.mail.javamail.JavaMailSenderImpl; 
    import org.springframework.mail.javamail.MimeMessageHelper; 
    /** 
     * 本类测试邮件中嵌套图片 
     * @author sunny    
     * 
     */ 
    public class AttachedImageMail { 
    public static void main(String[] args) throws Exception{ 
        JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); 
        
        //设定mail server 
        senderImpl.setHost("smtp.163.com"); 

        //建立邮件消息,发送简单邮件和html邮件的区别 
        MimeMessage mailMessage = senderImpl.createMimeMessage(); 
        //注意这里的boolean,等于真的时候才能嵌套图片,在构建MimeMessageHelper时候,所给定的值是true表示启用,         
        //multipart模式 
        MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true); 
        
        //设置收件人,寄件人 
        messageHelper.setTo("toMail@sina.com"); 
        messageHelper.setFrom("username@163.com"); 
        messageHelper.setSubject("测试邮件中嵌套图片!!"); 
        //true 表示启动HTML格式的邮件 
        messageHelper.setText("<html><head></head><body><h1>hello!!spring image html mail</h1>" + 
        "<img src=/"cid:aaa/"/></body></html>",true); 
            
        FileSystemResource img = new FileSystemResource(new File("g:/123.jpg")); 
        
        messageHelper.addInline("aaa",img); 
        
        senderImpl.setUsername("username") ; // 根据自己的情况,设置username
        senderImpl.setPassword("password") ; // 根据自己的情况, 设置password
        Properties prop = new Properties() ;
        prop.put("mail.smtp.auth", "true") ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
        prop.put("mail.smtp.timeout", "25000") ; 
        senderImpl.setJavaMailProperties(prop); 
        
        //发送邮件 
        senderImpl.send(mailMessage); 
        
        System.out.println("邮件发送成功.."); 


    4.发送包含附件的邮件

    package net.xftzr.mail;



    import java.io.File; 
    import java.util.Properties;

    import javax.mail.internet.MimeMessage; 
    import org.springframework.core.io.FileSystemResource; 
    import org.springframework.mail.javamail.JavaMailSenderImpl; 
    import org.springframework.mail .javamail.MimeMessageHelper; 
    public class AttachedFileMail 
    /** 
    * 本类测试的是关于邮件中带有附件的例子 
    * @param args 
    */ 
    public static void main(String[] args) throws Exception
        JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); 
        
        //设定mail server 
        senderImpl.setHost("smtp.163.com"); 
        //建立邮件消息,发送简单邮件和html邮件的区别 
        MimeMessage mailMessage = senderImpl.createMimeMessage(); 
        //注意这里的boolean,等于真的时候才能嵌套图片,在构建MimeMessageHelper时候,所给定的值是true表示启用,         
        //multipart模式 为true时发送附件 可以设置html格式
        MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"utf-8"); 
        
        //设置收件人,寄件人 
        messageHelper.setTo("toMail@sina.com");    
        messageHelper.setFrom("username@163.com"); 
        messageHelper.setSubject("测试邮件中上传附件!!"); 
        //true 表示启动HTML格式的邮件 
        messageHelper.setText("<html><head></head><body><h1>你好:附件中有学习资料!</h1></body></html>",true); 
            
        FileSystemResource file = new FileSystemResource(new File("g:/test.rar")); 
        //这里的方法调用和插入图片是不同的。 
        messageHelper.addAttachment("test.rar",file); 
        
        senderImpl.setUsername("username") ; // 根据自己的情况,设置username
        senderImpl.setPassword("password") ; // 根据自己的情况, 设置password
        Properties prop = new Properties() ;
        prop.put("mail.smtp.auth", "true") ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
        prop.put("mail.smtp.timeout", "25000") ; 
        senderImpl.setJavaMailProperties(prop); 
        //发送邮件 
        senderImpl.send(mailMessage); 
        
        System.out.println("邮件发送成功.."); 

    }/** 
    * 本类测试的是关于邮件中带有附件的例子 
    * @param args 
    */ 
    public static void main(String[] args) throws Exception
        JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); 
        
        //设定mail server 
        senderImpl.setHost("smtp.163.com"); 
        //建立邮件消息,发送简单邮件和html邮件的区别 
        MimeMessage mailMessage = senderImpl.createMimeMessage(); 
        //注意这里的boolean,等于真的时候才能嵌套图片,在构建MimeMessageHelper时候,所给定的值是true表示启用,         
        //multipart模式 为true时发送附件 可以设置html格式
        MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"utf-8"); 
        
        //设置收件人,寄件人 
        messageHelper.setTo("toMail@sina.com");    
        messageHelper.setFrom("username@163.com"); 
        messageHelper.setSubject("测试邮件中上传附件!!"); 
        //true 表示启动HTML格式的邮件 
        messageHelper.setText("<html><head></head><body><h1>你好:附件中有学习资料!</h1></body></html>",true); 
            
        FileSystemResource file = new FileSystemResource(new File("g:/test.rar")); 
        //这里的方法调用和插入图片是不同的。 
        messageHelper.addAttachment("test.rar",file); 
        
        senderImpl.setUsername("username") ; // 根据自己的情况,设置username
        senderImpl.setPassword("password") ; // 根据自己的情况, 设置password
        Properties prop = new Properties() ;
        prop.put("mail.smtp.auth", "true") ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
        prop.put("mail.smtp.timeout", "25000") ; 
        senderImpl.setJavaMailProperties(prop); 
        //发送邮件 
        senderImpl.send(mailMessage); 
        
        System.out.println("邮件发送成功.."); 

    }

  • 相关阅读:
    (原)Lazarus 异构平台下多层架构思路、DataSet转换核心代码
    (学)新版动态表单研发,阶段成果3
    (学) 如何将 Oracle 序列 重置 清零 How to reset an Oracle sequence
    (学)XtraReport WebService Print 报错
    (原)三星 i6410 刷机 短信 无法 保存 解决 办法
    (原) Devexpress 汉化包 制作工具、测试程序
    linux下网络配置
    apache自带ab.exe小工具使用小结
    Yii::app()用法小结
    PDO使用小结
  • 原文地址:https://www.cnblogs.com/grefr/p/6095045.html
Copyright © 2011-2022 走看看