zoukankan      html  css  js  c++  java
  • 利用springframework+javax.mail发邮件(普通邮件、带附件邮件、HTML格式邮件)

             Spring提供了发送电子邮件的支持,可以发送普通邮件、带附件邮件、HTML格式邮件,甚至还可以使用Velocity模板定制化邮件内容。

    一、引入相关的库

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <!-- spring核心库 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>4.2.5.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>4.2.5.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>4.2.5.RELEASE</version>
            </dependency>
     
            <!--发送Email-->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>4.2.5.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
                <version>1.4.7</version>
            </dependency>


    二、发送邮件代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    import org.springframework.core.io.ClassPathResource;
    import org.springframework.mail.SimpleMailMessage;
    import org.springframework.mail.javamail.JavaMailSenderImpl;
    import org.springframework.mail.javamail.MimeMessageHelper;
     
    import javax.mail.MessagingException;
    import javax.mail.internet.MimeMessage;
     
    public class SpringEmail {
     
        private JavaMailSenderImpl mailSender=null;
        //邮件用户名
        private String userName="";
        //发送邮箱名称
        private String from="@163.com";
        //接收邮箱名称
        private String to="@qq.com";
     
        public SpringEmail()
        {
            this.mailSender = new JavaMailSenderImpl();
            //邮箱smtp服务器
            mailSender.setHost("smtp.163.com");
            mailSender.setPort(25);
            mailSender.setUsername(this.userName);
            //邮箱密码
            mailSender.setPassword("xxxx");
        }
     
        //普通文本Email
        public void sendPureMail() {
            SimpleMailMessage message = new SimpleMailMessage();
     
            String spitterName = "这里是标题(纯文本)";
            message.setFrom(this.from);
            message.setTo(this.to);
            message.setSubject("这里是标题!");
            message.setText("这里是内容");
            this.mailSender.send(message);
        }
     
        //带多个附件的Email
        public void sendMailWithAttachment() throws MessagingException {
     
            MimeMessage message = mailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
     
            helper.setFrom(this.from);
            helper.setTo(this.to);
            helper.setSubject("这里是标题(带多个附件)!");
            helper.setText("这里是内容(带附件)");
     
            //添加两个附件(附件位置位于java-->resources目录),可根据需要添加或修改
            ClassPathResource image = new ClassPathResource("/coupon.jpg");
            ClassPathResource PDF = new ClassPathResource("/Rop Reference.pdf");
            helper.addAttachment("Coupon.png", image);
            helper.addAttachment("Rop Reference.pdf", PDF);
     
            this.mailSender.send(message);
        }
     
        //带附件的HTML格式的Email
        public void sendMailHtmlWithAttachment() throws MessagingException {
     
            MimeMessage message = mailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(message, true,"GBK"); //解决乱码问题
     
            helper.setFrom(this.from);
            helper.setTo(this.to);
            helper.setSubject("这里是标题(Html带附件)!");
            //设置META解决乱码问题
            helper.setText("<html><META http-equiv=Content-Type content='text/html; charset=GBK'><body><img src='cid:Coupon'>" +
                    "<h4>" + "测试乱码" + " says...</h4>" +
                    "<i>" + "测试乱码2" + "</i>" +
                    "</body></html>", true);
     
            //图片嵌入到html文件中
            ClassPathResource couponImage = new ClassPathResource("/coupon.jpg");
            helper.addInline("Coupon", couponImage);
     
            //图片作为附件发送
            ClassPathResource couponImage2 = new ClassPathResource("/coupon.jpg");
            helper.addAttachment("Coupon.png", couponImage2);
     
     
            this.mailSender.send(message);
        }
     
        public static void main(String[] args) throws MessagingException{
            System.out.println("开始发送邮件");
     
            SpringEmail email=new SpringEmail();
            //email.sendPureMail();
            //email.sendMailWithAttachment();
            email.sendMailHtmlWithAttachment();
     
            System.out.println("邮件发送成功");
        }
    }






  • 相关阅读:
    socket协议和http协议性能对比
    PHP对象在内存中的分配
    如何打造高性能Web应用
    ubuntu 16.04 实现远程图形界面连接
    NACOS升级操作
    ulimit 更改 gcc升级 查看显卡状态命令
    CentOS7下firewall-cmd防火墙使用
    Nacos 1.1.0发布,支持灰度配置和地址服务器模式
    NGINX限流配置
    学Redis
  • 原文地址:https://www.cnblogs.com/gossip/p/5887613.html
Copyright © 2011-2022 走看看