/**
  * 方法描述:发送带附件的邮件
  *
  * @throws UnsupportedEncodingException
  */
  public static boolean sendEmailWithAttachment(Email email)
      throws UnsupportedEncodingException {
    Properties prop = new Properties();
    prop.put("mail.smtp.host", mailServer);
    prop.put("mail.smtp.auth", "true");
    Authenticator auth = new MailAuthenticator();
    Session session = Session.getDefaultInstance(prop, auth);
    Message message = new MimeMessage(session);
    boolean flag = false;
    try {
      message.setSubject(email.getEmail_subject());// 设置邮件主题
      message.setHeader("Header:", email.getEmail_header()); // 设置邮件标题
      message.setSentDate(new Date()); // 设置发送时间
      Address addressFrom = new InternetAddress(mailAddress, mailAccount); // 设置发信人地址
      message.setFrom(addressFrom);
      BodyPart messageBodyPart = new MimeBodyPart();
      messageBodyPart.setContent(email.getEmail_content(),  "text/html;charset=utf-8");
      Multipart multipart = new MimeMultipart();
      multipart.addBodyPart(messageBodyPart);
      MimeBodyPart mimeBodyPart;
      //多个附件
      for (int i = 0; i < email.getEmail_file().size(); i++) {
        Map<String, String> map = email.getEmail_file().get(i);
        String fileSource="";
        String fileName="";
        for (String key : map.keySet()) {
          fileSource = key;
          fileName = map.get(key);
          }
        mimeBodyPart = new MimeBodyPart();
        DataSource source = new FileDataSource(fileSource);
        mimeBodyPart.setDataHandler(new DataHandler(source));
        mimeBodyPart.setFileName(MimeUtility.encodeText(fileName));
        multipart.addBodyPart(mimeBodyPart);// Put parts in
      }
      message.setContent(multipart);
     
      // 设置多个收件人地址
      List<String> list = email.getEmail_to();
      String toAddress = SendEmail.getAddress(list);
     
      InternetAddress[] internetAddressTo = new InternetAddress().parse(toAddress);
      message.setRecipients(Message.RecipientType.TO, internetAddressTo);

// 设置多个抄送地址
      String ccAddress = SendEmail.getAddress(email.getEmail_cc());
      InternetAddress[] internetAddressCC = new InternetAddress().parse(ccAddress);
      message.setRecipients(Message.RecipientType.CC, internetAddressCC);
     
      message.saveChanges();
      System.out.println("开始发送邮件……");

Transport.send(message);
      System.out.println("发送成功!");
      flag = true;
    } catch (MessagingException e) {
      System.out.println("发送失败!");
      flag = false;
      e.printStackTrace();

}
    return flag;
  }

java 邮件(2)的更多相关文章

  1. JAVA邮件发送的简单实现

    JAVA MAIL是利用现有的邮件账户发送邮件的工具,比如说,我在网易注册一个邮箱账户,通过JAVA Mail的操控,我可以不亲自登录网易邮箱,让程序自动的使用网易邮箱发送邮件.这一机制被广泛的用在注 ...

  2. java邮件发送(以163邮箱为例)

    1.首先应该开通163邮箱的smtp和pop3,得到授权码 2.其次建立一个web项目,否则需要倒jar包mail.jar 3.创建一个类 4.注意:邮件内容必须为正式话语,否则系统会认为是垃圾邮件而 ...

  3. 传智播客张孝祥java邮件开发随笔01

    01_传智播客张孝祥java邮件开发_课程价值与目标介绍 02_传智播客张孝祥java邮件开发_邮件方面的基本常识 03_传智播客张孝祥java邮件开发_手工体验smtp和pop3协议 第3课时 关于 ...

  4. java-基于JavaMail的Java邮件发送

    1.基于JavaMail的Java邮件发送:简单邮件发送 2.基于JavaMail的Java邮件发送:复杂邮件发送

  5. web基础---->java邮件的发送

    这里记录一下关于java邮件发送代码的编写.你在我身边也好,在天边也罢,想到世界的角落有一个你,觉得整个世界也变得温柔安定了. java邮件的发送 一.直接贴出代码,如下: package com.c ...

  6. java 邮件发送工具类【来源网络自己已经实际应用】

    最近在做一个Java发送邮件的工具类,现在分享一下完整的代码 首先需要java邮件的包javax.mail-1.5.4.jar 之前因为链接给错了,很不好意思,现在重新发一次. 包在这里可以下载htt ...

  7. java邮件开发

    一.邮件协议: (重点)SMTP:发送邮件的协议.Simple Message Transfer Protocal.默认端口:25 POP:邮局协议(收件协议).Post Office Protoca ...

  8. 基于JavaMail的Java邮件发送:复杂邮件发送

    参考:http://blog.csdn.net/xietansheng/article/details/51722660package com.bfd.ftp.utils;import java.ut ...

  9. java邮件发送(含附件)

    1. [代码]java邮件发送(含附件)疯狂的IT人站长整理的:利用Java发送邮件(含附件)的例子:1.邮件发送的配置propertity文件内容如下:(utils.properties文件放在sr ...

  10. java邮件发送工具

    最近在web项目中,客户端注册时需要通过邮箱验证,服务器就需要向客户端发送邮件,我把发送邮件的细节进行了简易的封装: 在maven中需要导入: <!--Email--> <depen ...

随机推荐

  1. C#反射(Reflection)详解

    1. 什么是反射2. 命名空间与装配件的关系3. 运行期得到类型信息有什么用4. 如何使用反射获取类型5. 如何根据类型来动态创建对象6. 如何获取方法以及动态调用方法7. 动态创建委托 1.什么是反 ...

  2. java 修改字体大小

    在Windows->Preferences->General->Appearance->Colors and Fonts->Java->Java Editor Te ...

  3. HDU 1241.Oil Deposits-求连通块DFS or BFS

    Oil Deposits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  4. 树的直径新求法、codeforces 690C3 Brain Network (hard)

    树的直径新求法 讲解题目 今天考了一道题目,下面的思路二是我在考场上原创,好像没人想到这种做法,最原始的题目,考场上的题目是这样的: 你现在有1 个节点,他的标号为1,每次加入一个节点,第i 次加入的 ...

  5. [XJOI-NOI2015-13-C]白黑树

    题目大意: 给你一个$n(n\leq300000)$个结点的以$1$为根的树,结点有黑白两种颜色,每个点初始权值为$0$.进行以下2种共$m(m\leq300000)$次操作: 1.给定结点$u$,对 ...

  6. 分布式配置中心介绍--Spring Cloud学习第六天(非原创)

    文章大纲 一.分布式配置中心是什么二.配置基本实现三.Spring Cloud Config服务端配置细节(一)四.Spring Cloud Config服务端配置细节(二)五.Spring Clou ...

  7. https://www.cnblogs.com/netoxi/p/7258895.html

    https://www.cnblogs.com/netoxi/p/7258895.html 应用服务和数据服务分离 需求/解决问题 随着网站业务的发展,越来越多的用户访问导致性能越来越差,越来越多的数 ...

  8. oracle查询、删除表中相同的数据

    delete FROM tablename a WHERE rowid > ( SELECT min(rowid) FROM tablename b WHERE b.id = a.id and ...

  9. 让arclist标签也支持currentstyle属性 完美解决

    1.查找到: $channelid = $ctag->GetAtt('channelid'); 在下面插入:$currentstyle = $ctag->GetAtt('currentst ...

  10. python super 的正确理解

    http://www.jb51.net/article/87807.htm super指的是MRO中的下一个类