background image

         最后再以 javax.mail.Transport 的静态 send()方法传送信息:
                Transport.send(message);

 

  2.发送多重内容邮件

        如果邮件可以包括 HTML 或附加文件等多重内容,则必须要有 javax.mail.Multipart
        对象,并在这个对象中增加代表多重内容的javax.mail.internet.MimeBodyPart 对象。
        举个例个来说,如果要让邮件内容包括HTML 内容,则可以如下:
           //代表 HTML 内容类型的对象
          MimeBodyPart htmlPart = new MimeBodyPart();
          htmlPart.setContent(text,"text/html;charset=UTF-8");
           //创建可包括多重内容的邮件内容
          Multipart multiPart = new MimeMultipart();
           //新增 HTML 内容类型
          multiPart.addBodyPart(htmlPart);
           //设定为邮件内容
          message.setContent(multiPart);
        将以代码取代范例中 getMessage()方法中 message.setText(text)该行。
        
        实际上为了安全,在邮件里直接编写的HTML 都会被过滤掉。现在邮件中通常会
        使用 JavaScript 制作所见即所得的画面编辑,而不是直接让用户编写 HTML。
 
        如果要附加文件,则可以创建 MimeBodyPart,设定文件名与内容之后,再加入
        MultiPart 中:
            Byte[] file = ...;
            MimeBodyPart filePart = new MimeBodyPart();
            filePart.setFileName(MimeUtility.encodeText(filename,"UTF-8","B"));
            filePart.setContent(file,part.getContentType());
        在使用 MimeBodyPart 的 setFileName()设定附件名称时,必须做 Mime 编码,所以
        借助 MimiUtility.encodeText()方法,在使用 setContent()设定内容时,还需指定内容
        类型。