首页 > 编程语言 >用JAVA发送含有附件的邮件

用JAVA发送含有附件的邮件

时间:2022-12-22 16:12:26浏览次数:39  
标签:JAVA prop appendix file 附件 new message MimeBodyPart 邮件

1、用JAVA发送含有附件的邮件

public void sendKREmailAndFile(String[] toEmail, String mailSubject, String mailContent,List<File> fileList) throws MessagingException {
        Properties prop = new Properties();
        prop.put("mail.smtp.auth", "true");
        prop.put("mail.smtp.host", host);
        prop.put("mail.smtp.port", port);
        prop.put("mail.debug", "true");
        prop.put("mail.smtp.starttls.enable", "true");
        Session session = Session.getInstance(prop, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(userName, password);
            }
        });

        MimeMessage message = new MimeMessage(session);
        message.setSubject(mailSubject);
        message.setFrom(new InternetAddress(senderEmail));
        InternetAddress[] toAddress = new InternetAddress[toEmail.length]; // 设置收件人的邮箱
        for (int i = 0; i < toAddress.length; i++) {
            toAddress[i] = new InternetAddress(toEmail[i]);
        }
        message.setRecipients(Message.RecipientType.TO, toAddress);

        message.setSubject(mailSubject, Charsets.UTF_8.name());

        String msg = mailContent;

        MimeBodyPart mimeBodyPart = new MimeBodyPart();
        mimeBodyPart.setContent(msg, messageType);

        Multipart multipart = new MimeMultipart();
        multipart.addBodyPart(mimeBodyPart);
        //关键代码:发送附件
        if(fileList != null){
            for(File file : fileList){
                MimeBodyPart appendix = new MimeBodyPart();
                appendix.setDataHandler(new DataHandler(new FileDataSource(file.getAbsolutePath())));
                appendix.setFileName(file.getName());
                multipart.addBodyPart(appendix);
            }
        }
        message.setContent(multipart);
        Transport.send(message);
    }

 2、其实和发送普通邮件的基本差不多。只是加了下面的代码,所以发送不带附件和带附件的邮件,都可以用这个方法

//关键代码:发送附件
        if(fileList != null){
            for(File file : fileList){
                MimeBodyPart appendix = new MimeBodyPart();
                appendix.setDataHandler(new DataHandler(new FileDataSource(file.getAbsolutePath())));
                appendix.setFileName(file.getName());
                multipart.addBodyPart(appendix);
            }
        }

  

标签:JAVA,prop,appendix,file,附件,new,message,MimeBodyPart,邮件
From: https://www.cnblogs.com/wwssgg/p/16998986.html

相关文章

  • java异常
    1、异常概述(1)异常分为:编译时异常运行时异常(2)编译时异常:javacIDE(,‘’),一般是指的语法错误,比较容易修正(3)运行时的异常:运行错误和逻辑错误1/0;(4)不正常的事件异常的类,创建对......
  • 一、【Java】多线程与高并发
    一、启动多线程的三种方式1、继承Thread接口类实现run()方法staticclassMyThredextendsThread{@Overridepublicvoidrun(){system.out.println("Hellow......
  • javaweb总结4-servlet基础
    正如ASP.NET的核心是IHttpHandler一样,JavaWeb的核心是Servlet接口,位于javax.servlet命名空间中。Filter的概念可以参考ASP.NET的HttpModule,Servlet中的各种Listener可以参......
  • javaweb总结3-Maven Web项目的基本结构
    鉴于目前JavaIDE众多并且都有一定的拥泵,Eclipse的JavaWeb项目不具有可移植性。Maven即解决了项目结构的规范问题又提供了强大引用处理等强大的功能,在项目布局等方面已经......
  • javaweb总结5-自定义Session
    Session在存储安全性要求较高的会话信息方面是必不可少的,Session当然绝对不是用来存储用户登录状态的,但类似验证码等敏感信息却必须存储在Session中。对于分布式Web应用自......
  • javaweb总结1-Java Web 模块结构
    JSP文件和AXPX文件类似,路径和URL一一对应,都会被动态编译为单独class。JavaWeb和ASP.NET的核心是分别是Servlet和IHttpHandler接口,因此无论是基础的Page文件(JSP、ASPX)方式......
  • javaweb总结2-Java Web项目的基本结构[Eclipse Dynamic Web Project]
    EclipseDynamicWebProject项目(1)可以配置需要编译的源码目录和输出目录,默认编译src目录下的源文件到build\classes目录下。(2)可以配置WEB-INF的根目录,默认为WebContent......
  • JAVA继承得深度了解
    继承与合成基本概念继承:可以基于已经存在的类构造一个新类。继承已经存在的类就可以复用这些类的方法和域。在此基础上,可以添加新的方法和域,从而扩充了类的功能。合成:在......
  • 【实用主义】如何用nodejs自动定时发送邮件提醒?
    需要先安装插件 npminstallNodemailer--saveindex.js global.SG={nodemailer:require("nodemailer")//发送邮件需要的服务};sg.js //发送邮件参数:收件人(支持群......
  • 教你用JavaScript获取大转盘
    案例介绍欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript编程实战案例,做一个大转盘。当你难以抉择的时候不妨用这个案例来帮你做选择。通过编......