javamail发邮件,正文为网页形式该怎么做?不用附件

解决方案 »

  1.   

    Message类
    一 旦创建了自己的Session对象,就是该去创建要发送的消息的时候了。这时就要用到消息类型。作为一个抽象类,您必须操作一个子类,在大多数情况下,该子类是javax.mail.internet.MimeMessage。一个MimeMessage是一种理解MIME类型和报头(在不同的RFC文档 中均有定义)的消息。消息的报头被严格限制成只能使用US-ASCII字符,尽管非ASCII字符可以被编码到某些报头字段中。
    可以通过将Session对象传递给MimeMessage构造器的方法来创建消息:
    MimeMessage message = new MimeMessage(session);
    注意:还有其他的构造器,像用于创建消息的源于RFC822格式化的输入流的构造器。
    一旦创建了消息,就可以设置其各个部分,如Message(消息)实现Part(部分)接口(以MimeMessage实现MimePart)。设置内容的基本机制是setContent()方法,它带有表示内容和MIME类型的参数:
    message.setContent("Hello", "text/plain");
    但是,如果正在使用 MimeMessage,并且您的消息是纯文本,那么您就可以使用setText()方法。该方法只需要一个表示实际内容的参数,默认的MIME类型为纯文本:
    message.setText("Hello");
    对于纯文本消息,setText()方法更常常被用来设置内容。要发送其他类型的消息,如HTML消息,就要使用setContent方法()。现在用的更多的是HTML消息。
    更多的看看这里:
    http://www.blogjava.net/rickhunter/articles/25616.html
      

  2.   

    http://java.sun.com/developer/onlineTraining/JavaMail/contents.html
      

  3.   

    給個例子給你。
    <%@page contentType="text/html;" language="java" 
    import = "java.util.*" import="javax.mail.*" 
    import = "javax.mail.internet.*" import="javax.activation.*"
    import = "java.net.*"  import = "java.lang.*"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>拸梓枙恅紫</title>
    </head>
    <%
     //String title = new String(request.getParameter("title").getBytes("ISO-8859-1"));
     //String to = new String(request.getParameter("to").getBytes("ISO-8859-1"));
     //String body = new String(request.getParameter("body").getBytes("ISO-8859-1"));
     //String fileAttachment = new String(request.getParameter("file").getBytes("ISO-8859-1"));
    %>
    <%
            String host = "smtp.163.com";
            String from =  "[email protected]";
            String to =    "[email protected]";
            String username = "xxxx";
            String password = "xxxx";
    String title = "斕疑ㄐ扂岆壽汒旽~ㄐ";
    //String fileAttachment = "E:\\蜇璃.txt";
     %>淏婓楷冞<BR><BR><%
    try{
            // Get system properties         Properties props = new Properties();

            // Setup mail server
            props.put("mail.smtp.host", host);
            props.put("mail.smtp.auth", "true"); //籵徹桄痐           
    System.out.println("淏婓楷冞####");         // Get session//祥隴啞峈妦繫蚚Session session惆渣~ㄐ佽眒冪隅砱
            Session session2 = Session.getDefaultInstance(props);
            session2.setDebug(true);
            // Define message
            MimeMessage message = new MimeMessage(session2);
            message.setFrom(new InternetAddress(from));
            message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
            message.setSubject(title,"ISO-8859-1"); //梓枙         
    message.setSentDate(new java.util.Date());   
    //&#63537;彆硐岆楷message憩硐蚚message.setText(body)//淏恅 憩褫眕賸﹝         
                //HTML message
    StringBuffer sb = new StringBuffer();
    sb.append("<HTML>\n");
    sb.append("<HEAD>\n");
        sb.append(title+"\n"); //梓枙
    sb.append("</HEAD>\n");
    sb.append("<BODY>\n");
    sb.append("<HI><Font color = 'red'>褫眕笢恅 賸HTML</font></HI><BR>"+"\n");

    sb.append("<a href="+"http://www.163.com"+">sdfsdf</a>"+"\n");

    sb.append("</BODY>\n");
    sb.append("</HTML>\n");
    //String body2 = (sb.toString()).getBytes("ISO-8859-1");
    //HTML賦旰

    message.setDataHandler(new DataHandler(sb.toString(),"text/html"));
     
            // Send message         Transport transport = session2.getTransport("smtp");
            transport.connect(host, username, password);

                //transport.sendMessage(message,"ISO-8859-1");
            transport.sendMessage(message,message.getRecipients(Message.RecipientType.TO)); %>楷冞傖髡<%
    System.out.println("楷冞傖髡");         transport.close();
         }
         catch(Exception e){
          e.printStackTrace();
         }
    %>
    <body></body>
    </html>