有,华源的邮件源程序,想要就留EMAIL

解决方案 »

  1.   

    给我一份,谢谢!
    [email protected]
      

  2.   

    Properties prop = new Properties();
    prop.setProperty("mail.transport.protocol", "smtp");
    prop.setProperty("mail.smtp.host", "mailserver"); 
    prop.setProperty("mail.smtp.auth", "true");
    Session session = Session.getInstance(prop, new Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication(
                  "User","Password");}});























    Transport trans = session.getTransport();
    Message msg = new MimeMessage(session);
    trans.connect();
    msg.setContent("中文Message","text/plain;charset=gb2312");
    trans.sendMessage(msg,new Address[]{ new InternetAddress("[email protected]")});
    trans.close();
      

  3.   

    <%@ page contentType="text/html; charset=gb2312" %>
    <%@ page language="java" %>
    <%@ page import="java.lang.*,java.io.*,java.util.*,java.net.*" %>
    <%!
    public class Parameters
    {
     public HttpServletRequest request;
     public JspWriter out;
     public Socket socket;
     public PrintWriter mailOut;
     public BufferedReader mailIn;
    }
    void sendCommand(Parameters parms,String cmd)throws IOException
    {
     parms.out.println("C: "+cmd);
     parms.mailOut.print(cmd+"\r\n");
     parms.mailOut.flush();
     String line=parms.mailIn.readLine();
     parms.out.println("S: "+line);
     }
     
     void getMessage(Parameters parms,int msg)throws IOException
    {
     parms.out.println("Retrieving "+msg);
     sendCommand(parms,"retr "+msg);
     String thisURI=parms.request.getRequestURI();
     String thisPath=parms.request.getRealPath(thisURI);
     File thisFile=new File(thisPath);
     String fileName=thisFile.getParent()+msg+".eml";
     PrintWriter fileOut=new PrintWriter(new FileWriter(fileName));
     for(int i=0;;i++){
     String line=parms.mailIn.readLine();
     if(line.startsWith("."))break;
     //RdStrm=new StreamReader(NetStrm);
     //RdStrm=new StreamReader(NetStrm,System.Text.Encoding.GetEncoding("gb2312"))
     //String line1=new String(line.getBytes(),"gb2312");
     //line = new BASE64Encoder().Convert.Tobase64(line.getBytes());
     //if(i>10)break; fileOut.println(line);
     }
     fileOut.flush();
     fileOut.close();
     }
     %>
    <%
     String host=request.getParameter("textfield");
     if((host==null)||(host.trim().equals("")))
     throw new RuntimeException("no mailhost parameter specified");
     
     String username=request.getParameter("textfield2");
     if((username==null)||(username.trim().equals("")))
     throw new RuntimeException("no username parameter specified"); 
     
     String password=request.getParameter("textfield3");
     if((password==null)||(password.trim().equals("")))
     throw new RuntimeException("no password parameter specified");
     
     out.println("<h3>get mail log</h3>");
     out.println("<pre>");
     Parameters parms=new Parameters();
     parms.request=request;
     parms.out=out;
     parms.socket=new Socket(host,110);
     parms.mailOut=new PrintWriter(parms.socket.getOutputStream());
     parms.mailIn=new BufferedReader(new InputStreamReader(parms.socket.getInputStream()));
     
     String line=parms.mailIn.readLine();
     out.println(line);
      
     sendCommand(parms,"USER "+username);
     sendCommand(parms,"PASS "+password); 
     sendCommand(parms,"STAT");
     sendCommand(parms,"UIDL");
     //sendCommand(parms,"LIST");
    // sendCommand(parms,"RETR 2");
     //sendCommand(parms,"DELE 2");
    // sendCommand(parms,"RSET");
     parms.mailOut.print("LIST"+"\r\n");
     parms.mailOut.flush();
     for(;;)
     {line=parms.mailIn.readLine();
     if(line.startsWith("."))break;
      parms.out.println("S: "+line);
     } Vector messageList=new Vector();
     for(;;)
     {line=parms.mailIn.readLine();
     if(line.startsWith("."))break;
     messageList.addElement(line);
     }
     
     int n=messageList.size(); for(int i=1;i<n;i++)
     {
      getMessage(parms,i);
     //sendCommand(parms,"DELE "+i);
     }
     
     
     
     
     sendCommand(parms,"QUIT"); 
     parms.socket.close();
     out.println("</pre>");
     
     %>
      

  4.   

    去看sun的java mail说明文档
    有例子的
      

  5.   

    楼主看看这个有没有用:
    http://expert.csdn.net/Expert/topic/1177/1177970.xml?temp=.3405115:)
      

  6.   

    也给我一份,谢谢!
    [email protected]
      

  7.   

    参考以下贴子,偶写的。保管有用http://expert.csdn.net/Expert/topic/1785/1785136.xml?temp=.8423578
      

  8.   

    这是一个完整的servlet搞得,,webmail的代码。import java.io.*;
    import java.util.*;
    import javax.servlet.*;
    import javax.servlet.http.*;import javax.mail.*;
    import javax.mail.internet.*;
    public class WebMail extends HttpServlet {   public void doGet(HttpServletRequest request,HttpServletResponse response)
          throws ServletException, IOException {      String command = request.getParameter("command");      try {
             if ("login".equalsIgnoreCase(command)) {
                doLogin(request, response);
             } else if ("list".equalsIgnoreCase(command)) {
                doList(request, response);
             } else if ("read".equalsIgnoreCase(command)) {
                doRead(request, response);
             } else if ("reply".equalsIgnoreCase(command)) {
                doReply(request, response);
             } else if ("send".equalsIgnoreCase(command)) {
                doSend(request, response);
             } else if ("logout".equalsIgnoreCase(command)) {
                doLogout(request, response);
             }
          } catch (MessagingException e) {
             throw new ServletException("MessagingException: " + e);
          }
       }   private String defaultFrom;   private Session session;
       private Store store;
       private Folder folder;   private void doLogin(HttpServletRequest request,HttpServletResponse response)
          throws ServletException, IOException, MessagingException {
          String smtp = request.getParameter("smtp");
          String pop3 = request.getParameter("pop3");
          String user = request.getParameter("user");
          String pass = request.getParameter("pass");      // Save a default From address
          defaultFrom = user + "@" + pop3;      // Start the session
          java.util.Properties properties = System.getProperties();
          properties.put("mail.smtp.host", smtp);
          session = Session.getInstance(properties, null);      // Connect to the store
          store = session.getStore("pop3");
          store.connect(pop3, user, pass);      // Open the INBOX folder
          folder = store.getFolder("INBOX");
          folder.open(Folder.READ_ONLY);      // List the messages
          doList(request, response);
       }
       private Message[] messages = null;   private void doList(HttpServletRequest request,HttpServletResponse response)
          throws ServletException, IOException, MessagingException {
          messages = folder.getMessages();      response.setContentType("text/html");
          PrintWriter writer = response.getWriter();      // Start a table and print the header
          writer.println(
          "<html><head><title>list</title></head>" +
          "<body><table border=\"1\">" +
          "<tr>" +
          "<th>Date</th>" +
          "<th>From</th>" +
          "<th>Subject</th>" +
          "</tr>");      // Print each message
          for (int i = 0; i < messages.length; ++i) {
          writer.println(
          "<tr>" +
          "<td>" + messages[i].getSentDate() + "</td>" +
          "<td>" + messages[i].getFrom()[0] + "</td>" +
          "<td><a href='" + request.getRequestURI() +
          "?command=read&message=" + i + "'>" +
          messages[i].getSubject() + "</a></td>" +
          "</tr>");
          }      // End the table
          writer.println("</table>");      // Add a logout link
          writer.println("<p><a href='" + request.getRequestURI() +
          "?command=logout'>logout</a></p>");      // End the page
          writer.println("</body></html>");      writer.close();
       }   private void doRead(HttpServletRequest request,HttpServletResponse response)
          throws ServletException, IOException, MessagingException {      int num = Integer.parseInt(request.getParameter("message"));      response.setContentType("text/html");
          PrintWriter writer = response.getWriter();      MimeMessage message = (MimeMessage) messages[num];      writer.println("<html><head><title>read: " +
          message.getSubject() +
          "</title></head><body>");      // Print some select headers
          writer.println("<table border=\"1\">" +
          "<tr><th>Date: </th><td>" +
          message.getSentDate() +
          "</td></tr><tr><th>From: </th><td>" +
          message.getFrom()[0] +
          "</td></tr><tr><th>To: </th><td>" +
          message.getRecipients(
          Message.RecipientType.TO)[0] +
          "</td></tr><tr><th>Subject: </th><td>" +
          message.getSubject() +
          "</td></tr><tr><td colspan=\"2\"><p>");      ContentType ct = new ContentType(message.getContentType());      // If the text is in HTML, just print it
          if ("text/html".equalsIgnoreCase(ct.getBaseType())) {
             BufferedReader reader =
             new BufferedReader(
             new InputStreamReader(
             message.getInputStream()));         String s;         while ((s = reader.readLine()) != null) {
                writer.println(s);
             }
          } else {
             Object o = message.getContent();         // If the text is plain, just print it
             if (o instanceof String) {
                writer.println("<pre>" + o + "</pre>");
             } else {
                // Print the content type
                writer.println(message.getContentType());            // If it is a multipart, list the parts
                if (o instanceof MimeMultipart) {
                   listParts((MimeMultipart) o, writer);
                }
             }
          }      // End the message
          writer.println("</p></td></tr></table>");      // Print a link to reply
          writer.println("<p><a href='" +
          request.getRequestURI() +
          "?command=reply&message=" + num + "'>reply</a> ");
          // Print a link to logout
          writer.println("<a href='" +
          request.getRequestURI() +
          "?command=logout'>logout</a></p>");      // End the page
          writer.println("</body></html>");
          writer.close();
       }
      

  9.   

    private void listParts(MimeMultipart mp, PrintWriter writer)
          throws MessagingException {      writer.println("<ul>");      for (int i = 0; i < mp.getCount(); ++i) {
             MimeBodyPart bp = (MimeBodyPart) mp.getBodyPart(i);
             writer.println("<li>" + bp.getContentType());
          }      writer.println("</ul>");
       }   private void doReply(HttpServletRequest request,HttpServletResponse response)
          throws ServletException, IOException, MessagingException {      // Get the message we are replying to
          int num = Integer.parseInt(request.getParameter("message"));      // Create a new messgage
          MimeMessage message = (MimeMessage) messages[num];      String to = ((InternetAddress)message.getFrom()[0]).getAddress();      String subject = "Re: " + message.getSubject();      response.setContentType("text/html");
          PrintWriter writer = response.getWriter();
          writer.println("<html><head><title>reply</title></head><body>");
          writer.println("<form action='" + request.getRequestURI() +
          "?command=send' method='get'>");
          writer.println("<input type='hidden' name='command' value='send'>");
          writer.println("From: <input name='from' value='" +
          defaultFrom + "' type='text'><br>");
          writer.println("To: <input name='to' value='" + to +
          "' type='text'><br>");
          writer.println("Cc: <input name='cc' type='text'><br>");
          writer.println("Bcc: <input name='bcc' type='text'><br>");
          writer.println("Subject: <input name='subject' value='" +
          subject + "' type='text'><br>");
          writer.println("<textarea name='text' cols='32' rows='8'></textarea><br>");
          // Print the Submit and Reset buttons
          writer.println("<input type='submit'><input type='reset'>");      // End the page
          writer.println("</body></html>");      writer.close();
       }   private void doSend(HttpServletRequest request,HttpServletResponse response)
          throws ServletException, IOException, MessagingException {      String from = request.getParameter("from");
          String to = request.getParameter("to");
          String cc = request.getParameter("cc");
          String bcc = request.getParameter("bcc");
          String subject = request.getParameter("subject");
          String text = request.getParameter("text");      // Construct a message
          MimeMessage message = new MimeMessage(session);      message.setFrom(new InternetAddress(from));      message.setRecipients(Message.RecipientType.TO,
          InternetAddress.parse(to));
          message.setRecipients(Message.RecipientType.CC,
          InternetAddress.parse(cc));
          message.setRecipients(Message.RecipientType.BCC,
          InternetAddress.parse(bcc));      message.setSubject(subject);      message.setText(text);      // Send the messge
          Transport.send(message);      response.setContentType("text/html");
          PrintWriter writer = response.getWriter();      writer.println("<html><head><title>send</title></head><body>");
          writer.println("<p>Your message was sent.</p>");
          writer.println("</body></html>");
          writer.close();
       }   private void doLogout(HttpServletRequest request,HttpServletResponse response)
          throws ServletException, IOException, MessagingException {      // Close the folder and store
          folder.close(false);
          store.close();      // Say goodbye
          response.setContentType("text/html");
          PrintWriter writer = response.getWriter();      writer.println("<html><head><title>logout</title></head>");
          writer.println("<body><p>Goodbye.</p></body></html>");      writer.close();
       }
    }
      

  10.   

    这是开始调用的html
    调试通过,<HTML>
    <HEAD><TITLE>WebMail</title></HEAD>
    <BODY>
    <H1>WebMail</H1>
    <form action='/servlet/WebMail' method='get'>
    <input type='hidden' name='command' value='login'>
    SMTP Server: <input type='text' name='smtp' value="202.199.24.2"><BR>
    POP3 Server: <input type='text' name='pop3' value="pop.163.com"><BR>
    POP3 Username: <input type='text' name='user' value="netnice"><BR>
    POP3 Password: <input type='text' name='pass' value=""><BR>
    <input type='submit'><input type='reset'>
    </FORM>
    </BODY>
    </HTML>
      

  11.   

    java.lang.NumberFormatException: null
    at java.lang.Integer.parseInt(Integer.java:394)
    at java.lang.Integer.parseInt(Integer.java:476)
    at WebMail.doRead(WebMail.java:117)
    at WebMail.doGet(WebMail.java:23)
    是哪的问题呢
      

  12.   

    我自己写了一个例子,支持各种附件。你要看的话留下mail
      

  13.   

    [email protected]
    给我一份,谢了
      

  14.   

    /*
     * @(#)msgsend.java 1.15 00/05/24
     *
     * Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved. */import java.io.*;
    import java.net.InetAddress;
    import java.util.Properties;
    import java.util.Date;import javax.mail.*;
    import javax.mail.internet.*;/**
     * Demo app that shows how to construct and send an RFC822
     * (singlepart) message.
     *
     * XXX - allow more than one recipient on the command line
     *
     * @author Max Spivak
     * @author Bill Shannon
     */public class msgsend {    public static void main(String[] argv) {
    new msgsend(argv);
        }    public msgsend(String[] argv) { String  to, subject = null, from = null, 
    cc = null, bcc = null, url = null;
    String mailhost = null;
    String mailer = "msgsend";
    String protocol = null, host = null, user = null, password = null;
    String record = null; // name of folder in which to record mail
    boolean debug = false;
    BufferedReader in =
    new BufferedReader(new InputStreamReader(System.in));
    int optind; for (optind = 0; optind < argv.length; optind++) {
        if (argv[optind].equals("-T")) {
    protocol = argv[++optind];
        } else if (argv[optind].equals("-H")) {
    host = argv[++optind];
        } else if (argv[optind].equals("-U")) {
    user = argv[++optind];
        } else if (argv[optind].equals("-P")) {
    password = argv[++optind];
        } else if (argv[optind].equals("-M")) {
    mailhost = argv[++optind];
        } else if (argv[optind].equals("-f")) {
    record = argv[++optind];
        } else if (argv[optind].equals("-s")) {
    subject = argv[++optind];
        } else if (argv[optind].equals("-o")) { // originator
    from = argv[++optind];
        } else if (argv[optind].equals("-c")) {
    cc = argv[++optind];
        } else if (argv[optind].equals("-b")) {
    bcc = argv[++optind];
        } else if (argv[optind].equals("-L")) {
    url = argv[++optind];
        } else if (argv[optind].equals("-d")) {
    debug = true;
        } else if (argv[optind].equals("--")) {
    optind++;
    break;
        } else if (argv[optind].startsWith("-")) {
    System.out.println(
    "Usage: msgsend [[-L store-url] | [-T prot] [-H host] [-U user] [-P passwd]]");
    System.out.println(
    "\t[-s subject] [-o from-address] [-c cc-addresses] [-b bcc-addresses]");
    System.out.println(
    "\t[-f record-mailbox] [-M transport-host] [-d] [address]");
    System.exit(1);
        } else {
    break;
        }
    } try {
        if (optind < argv.length) {
    // XXX - concatenate all remaining arguments
    to = argv[optind];
    System.out.println("To: " + to);
        } else {
    System.out.print("To: ");
    System.out.flush();
    to = in.readLine();
        }
        if (subject == null) {
    System.out.print("Subject: ");
    System.out.flush();
    subject = in.readLine();
        } else {
    System.out.println("Subject: " + subject);
        }     Properties props = System.getProperties();
        // XXX - could use Session.getTransport() and Transport.connect()
        // XXX - assume we're using SMTP
        if (mailhost != null)
    props.put("mail.smtp.host", mailhost);     // Get a Session object
        Session session = Session.getDefaultInstance(props, null);
        if (debug)
    session.setDebug(true);     // construct the message
        Message msg = new MimeMessage(session);
        if (from != null)
    msg.setFrom(new InternetAddress(from));
        else
    msg.setFrom();     msg.setRecipients(Message.RecipientType.TO,
    InternetAddress.parse(to, false));
        if (cc != null)
    msg.setRecipients(Message.RecipientType.CC,
    InternetAddress.parse(cc, false));
        if (bcc != null)
    msg.setRecipients(Message.RecipientType.BCC,
    InternetAddress.parse(bcc, false));     msg.setSubject(subject);     collect(in, msg);     msg.setHeader("X-Mailer", mailer);
        msg.setSentDate(new Date());     // send the thing off
        Transport.send(msg);     System.out.println("\nMail was sent successfully.");     // Keep a copy, if requested.     if (record != null) {
    // Get a Store object
    Store store = null;
    if (url != null) {
        URLName urln = new URLName(url);
        store = session.getStore(urln);
        store.connect();
    } else {
        if (protocol != null)
    store = session.getStore(protocol);
        else
    store = session.getStore();     // Connect
        if (host != null || user != null || password != null)
    store.connect(host, user, password);
        else
    store.connect();
    } // Get record Folder.  Create if it does not exist.
    Folder folder = store.getFolder(record);
    if (folder == null) {
        System.err.println("Can't get record folder.");
        System.exit(1);
    }
    if (!folder.exists())
        folder.create(Folder.HOLDS_MESSAGES); Message[] msgs = new Message[1];
    msgs[0] = msg;
    folder.appendMessages(msgs); System.out.println("Mail was recorded successfully.");
        } } catch (Exception e) {
        e.printStackTrace();
    }
        }    public void collect(BufferedReader in, Message msg)
    throws MessagingException, IOException {
    String line;
    StringBuffer sb = new StringBuffer();
    while ((line = in.readLine()) != null) {
        sb.append(line);
        sb.append("\n");
    } // If the desired charset is known, you can use
    // setText(text, charset)
    msg.setText("this is the first sample");
        }
    }
      

  15.   

    小玉米,给 我一份,谢了
    [email protected]
      

  16.   

    我也要!小玉米,谢了
    [email protected]
      

  17.   

    小玉米,谢了
    [email protected]
      

  18.   

    发送普通邮件,接受普通邮件 
    发送带有附件的邮件,接收带有附件的邮件 
    发送html形式的邮件,接受html形式的邮件 
    [b[发送带有图片的邮件[/b]等做了一个总结。 
    import java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.*; 
    import com.borland.jbcl.layout.*; 
    import javax.mail.*; 
    import java.util.*; 
    import javax.mail.internet.*; 
    import java.io.*; 
    import javax.activation.*; 
    public String host="smtp.163.com"; 
    public String username="abcdefg"; 
    public String password="abcdefg"; 
    public String mail_head_name="this is head of this mail"; 
    public String mail_head_value="this is head of this mail"; 
    public String mail_to="[email protected]"; 
    public String mail_from="[email protected]"; 
    public String mail_subject="this is the subject of this test mail"; 
    public String mail_body="this is the mail_body of this test mail"; 
    //此段代码用来发送普通电子邮件 
    void jButton1_actionPerformed(ActionEvent e) { 
    try 

    Properties props = new Properties();//获取系统环境 
    Authenticator auth = new Email_Autherticator();//进行邮件服务器用户认证 props.put("mail.smtp.host",host); 
    props.put("mail.smtp.auth","true"); 
    Session session = Session.getDefaultInstance(props,auth); 
    //设置session,和邮件服务器进行通讯。 
    MimeMessage message = new MimeMessage(session); 
    message.setContent("Hello","text/plain");//设置邮件格式 
    message.setSubject(mail_subject);//设置邮件主题 
    message.setText(mail_body);//设置邮件正文 
    message.setHeader(mail_head_name,mail_head_value);//设置邮件标题 
    message.setSentDate(new Date());//设置邮件发送日期 Address address = new InternetAddress(mail_from,"sunxiaoming"); 
    message.setFrom(address); //设置邮件发送者的地址 //如果要对邮件发送者进行多个参数的设置,可以用以下语句 
    // Address address[] = {new InternetAddress("[email protected]","sunxmatoaklet"),new InternetAddress("[email protected]","sunxmathotmail")}; 
    // message.addFrom(address); Address toAddress = new InternetAddress(mail_to);//设置邮件接收方的地址 
    message.addRecipient(Message.RecipientType.TO,toAddress); 
    // Address ccAddress = new InternetAddress("[email protected]");//设置邮件抄送者的地址 
    // message.addRecipient(Message.RecipientType.CC,ccAddress); 
    Transport.send(message);//发送邮件 
    /* // to get a specific instance from the session for your protocol.pass along the username and password 
    // (blank if unnecessary).send the message,and close the connection; 
    message.saveChanges(); 
    Transport transport = session.getTransport("smtp"); 
    transport.connect(host,username,password); 
    transport.sendMessage(message,message.getAllRecipients()); 
    transport.close(); 
    */ 
    System.out.println("send ok!"); 

    catch(Exception ex) 

    System.out.println("faild"+ex); 

    }
      

  19.   

    //此段代码用来进行服务器对用户的认证
    public class Email_Autherticator extends Authenticator 

    public Email_Autherticator() 

    super(); 

    public PasswordAuthentication getPasswordAuthentication() 

    return new PasswordAuthentication(username,password); 


    //该程序为接收邮件 
    void jButton2_actionPerformed(ActionEvent e) { 
    try 
    {
    Properties props = System.getProperties(); //获取系统变量 
    Authenticator auth = new Email_Autherticator(); 
    props.put("mail.smtp.host",host); 
    props.put("mail.smtp.auth","true"); 
    Session session = Session.getDefaultInstance(props,auth); //建立session 
    Store store = session.getStore("pop3"); 
    store.connect(host,username,password); //After connecting to the Store,you can get a Folder,which must be opened before you can read messages from it: 
    Folder folder = store.getFolder("INBOX");//连接到Store后,取得一个文件夹,一般默认的是INDEX 
    folder.open(Folder.READ_WRITE);//READ_ONLY为打开方式 
    Message message[] = folder.getMessages();//从文件夹获取邮件信息 //可以用两种方式去获得邮件信息,getContent()用来获得邮件的主体信息。而WriteTo()可以用来获得邮件的全部信息,包括头部信息 
    // System.out.println(((MimeMessage)message).getContent()); 
    for (int i=0,n=message.length;i { String out_from_person = ((InternetAddress)message[i].getFrom()[0]).getPersonal(); 
    String out_from_address = ((InternetAddress)message[i].getFrom()[0]).getAddress(); 
    System.out.println("From:"+out_from_person+"\t"); 
    System.out.println("Address:"+out_from_address+"\t"); String out_subject = message[i].getSubject(); 
    System.out.println("Subject:"+out_subject+"\t"); //以下代码用来获得邮件的正文信息 
    Part messagePart = message[i]; 
    Object out_content = messagePart.getContent(); 
    if (out_content instanceof Multipart) 

    messagePart = ((Multipart)out_content).getBodyPart(0); 
    System.out.println("[ Multipart Message ]"); 

    String out_content_type = messagePart.getContentType(); 
    System.out.println("CONTENT:"+out_content_type); if (out_content_type.startsWith("text/plain") | | out_content_type.startsWith("text/html")) 

    InputStream ipstm = messagePart.getInputStream(); 
    BufferedReader bufreader = new BufferedReader(new InputStreamReader(ipstm)); 
    String thisLine = bufreader.readLine(); 
    while (thisLine != null) 

    System.out.println("thisLine: "+thisLine); 
    thisLine = bufreader.readLine(); 


    System.out.println("------------------------------------------------------------"); 
    message[i].setFlag(Flags.Flag.DELETED,true);//最后删除服务器端的邮件 

    //DELETED,ANSWERED,DRAFT,FLAGGED,RECENT,SEEN,USER 
    folder.close(true);//true的话,彻底删除已经标记为DELETE的邮件,如果为false的话,就不删除 
    store.close();//关闭 

    catch(Exception ej2) 

    System.out.println(ej2); 

    } void jButton4_actionPerformed(ActionEvent e) { 
    try 
    {//该程序为回复邮件 
    Properties props = System.getProperties(); //获取系统变量 
    Authenticator auth = new Email_Autherticator(); //取得穃uFFFD衿魅现? 
    props.put("mail.smtp.host",host); 
    props.put("mail.smtp.auth","true"); 
    Session session = Session.getDefaultInstance(props,auth); //建立session 
    Store store = session.getStore("pop3"); 
    store.connect(host,username,password); Folder folder = store.getFolder("INBOX"); 
    folder.open(Folder.READ_WRITE); 
    Message message[] = folder.getMessages(); for (int i=0,n=message.length;i { 
    // String out_from_person = ((InternetAddress)message[i].getFrom()[0]).getPersonal();//获取邮件发信人的署名 String out_from_address = ((InternetAddress)message[i].getFrom()[0]).getAddress(); 
    System.out.println(out_from_address); Message forward = new MimeMessage(session); 
    forward.setSubject("Fwd:"+message[i].getSubject()); 
    forward.setFrom(new InternetAddress(mail_to)); 
    forward.addRecipient(Message.RecipientType.TO,new InternetAddress(out_from_address)); BodyPart messageBodyPart = new MimeBodyPart(); 
    messageBodyPart.setText("Here you go with the original message:\n\n"); Multipart multipart = new MimeMultipart(); 
    multipart.addBodyPart(messageBodyPart); messageBodyPart = new MimeBodyPart(); 
    messageBodyPart.setDataHandler(message[i].getDataHandler()); multipart.addBodyPart(messageBodyPart); 
    forward.setContent(multipart); Transport.send(forward); 
    message[i].setFlag(Flags.Flag.DELETED,true);//DELETED,ANSWERED,DRAFT,FLAGGED,RECENT,SEEN,USER 

    folder.close(true); 
    store.close();//关闭 

    catch(Exception ej2) 

    System.out.println(ej2); 
    } }void jButton5_actionPerformed(ActionEvent e) { 
    try 

    Properties props = new Properties(); 
    Authenticator auth = new Email_Autherticator(); props.put("mail.smtp.host",host); 
    props.put("mail.smtp.auth","true"); 
    Session session = Session.getDefaultInstance(props,auth); 
    MimeMessage message = new MimeMessage(session); 
    message.setContent("Hello","text/plain"); 
    message.setSubject(mail_subject); 
    message.setText(mail_body); 
    message.setHeader(mail_head_name,mail_head_value); 
    message.setSentDate(new Date()); 
    message.setFrom(new InternetAddress(mail_from,"sunxiaoming")); //to signal man 
    //原理:可以将邮件看成有多个部分组成的,如正文是一个部分,附件也是一个部分,所以用BodyPart来设置邮件的格式 
    message.addRecipient(Message.RecipientType.TO,new InternetAddress(mail_to)); 
    BodyPart messageBodyPart = new MimeBodyPart(); 
    messageBodyPart.setText("Pardon Ideas"); 
    Multipart multipart = new MimeMultipart(); 
    multipart.addBodyPart(messageBodyPart); messageBodyPart = new MimeBodyPart(); 
    DataSource source = new FileDataSource("./20020423/test.zip");//此处设置邮件的附件 
    messageBodyPart.setDataHandler(new DataHandler(source)); 
    messageBodyPart.setFileName("test.zip"); 
    multipart.addBodyPart(messageBodyPart); 
    message.setContent(multipart); 
    Transport.send(message); 
    System.out.println("send ok!"); 

    catch(Exception ex) 

    System.out.println("faild"+ex); 
    } }
      

  20.   

    //此段代码用来发送带有附件的邮件
    void jButton6_actionPerformed(ActionEvent e) { 
    try 
    {
    Properties props = System.getProperties(); 
    Authenticator auth = new Email_Autherticator(); 
    props.put("mail.smtp.host",host); 
    props.put("mail.smtp.auth","true"); 
    Session session = Session.getDefaultInstance(props,auth); //建立session 
    Store store = session.getStore("pop3"); 
    store.connect(host,username,password); //After connecting to the Store,you can get a Folder,which must be opened before you can read messages from it: 
    Folder folder = store.getFolder("INBOX"); 
    folder.open(Folder.READ_WRITE); 
    Message message[] = folder.getMessages(); for (int i=0,n=message.length;i { 
    //获得邮件的部分信息,如头部信息,送信人的署名,送信人的邮件地址 
    String out_from_person = ((InternetAddress)message[i].getFrom()[0]).getPersonal(); 
    String out_from_address = ((InternetAddress)message[i].getFrom()[0]).getAddress(); 
    System.out.println("From:"+out_from_person+"\t"); 
    System.out.println("Address:"+out_from_address+"\t"); 
    String out_subject = message[i].getSubject(); 
    System.out.println("Subject:"+out_subject+"\t"); //以下代码用来获取邮件的主体信息 
    Part messagePart = message[i]; 
    Object out_content = messagePart.getContent(); 
    if (out_content instanceof Multipart) 

    messagePart = ((Multipart)out_content).getBodyPart(0); 
    System.out.println("[ Multipart Message ]"); 

    String out_content_type = messagePart.getContentType(); 
    System.out.println("CONTENT:"+out_content_type); if (out_content_type.startsWith("text/plain") | | out_content_type.startsWith("text/html")) 

    InputStream ipstm = messagePart.getInputStream(); 
    BufferedReader bufreader = new BufferedReader(new InputStreamReader(ipstm)); 
    String thisLine = bufreader.readLine(); 
    while (thisLine != null) 

    System.out.println("thisLine: "+thisLine); 
    thisLine = bufreader.readLine(); 


    //获取附件 
    Multipart mp = (Multipart)message[i].getContent(); 
    for (int j=0,m=mp.getCount();j { 
    System.out.println("***"+m+"***"); 
    Part part = mp.getBodyPart(j); 
    String disposition = part.getDisposition(); 
    if ((disposition != null) && ((disposition.equals(part.ATTACHMENT)) | | (disposition.equals(part.INLINE)))) 
    { //以下代码将获得的附件保存到当前目录下,以part.getFileName()为文件名,也既是附件的名称。 
    File filename = new File(part.getFileName()); 
    for (int k=0;filename.exists();k++) 

    filename = new File(part.getFileName()+k); 

    FileOutputStream myFileoutputstream = new FileOutputStream(filename); 
    int chunk = part.getSize();//获得附件的大小,不一定很准确。 byte [] buffer = new byte[chunk]; 
    InputStream instream = part.getInputStream(); 
    instream.read(buffer,0,chunk); 
    myFileoutputstream.write(buffer,0,chunk); 
    instream.close(); 
    myFileoutputstream.close(); 


    System.out.println("------------------------------------------------------------"); 
    message[i].setFlag(Flags.Flag.DELETED,true); 

    folder.close(true); 
    store.close();//关闭 

    catch(Exception ej2) 

    System.out.println(ej2); 

    } //此段代码用来发送带有html信息的邮件 
    void jButton8_actionPerformed(ActionEvent e) { 
    try 
    {
    Properties props = new Properties(); 
    Authenticator auth = new Email_Autherticator(); 
    props.put("mail.smtp.host",host); 
    props.put("mail.smtp.auth","true"); 
    Session session = Session.getDefaultInstance(props,auth); 
    MimeMessage message = new MimeMessage(session); 
    //设置邮件正文 
    String htmltext="< h1>hello< /h1>"+"< a href=\"http://www.sina.com.cn\" target=\"_blank\">click me please!< /a>"; 
    message.setContent(htmltext,"text/html");//text/plain设置邮件的格式因为是带有html文档的,所以用text/html格式 message.setSubject(mail_subject); 
    // message.setText(mail_body);在使用message.setContent()时候,好象不能用message.setText() 
    message.setHeader(mail_head_name,mail_head_value); 
    message.setSentDate(new Date()); 
    Address address = new InternetAddress(mail_from,"sunxiaoming"); 
    message.setFrom(address); 
    Address toAddress = new InternetAddress(mail_to); 
    message.addRecipient(Message.RecipientType.TO,toAddress); 
    Transport.send(message); 
    System.out.println("send ok!"); 

    catch(Exception ex) 

    System.out.println("faild"+ex); 
    } }
      

  21.   

    我也要,我:
    [email protected]
    顺便请问:
    邮件附件的中文问题是如何解决的呢,好像单用tomcat就能得到中文附件,用apache+tomcat就得不到中文附件,怎么回事呢?
      

  22.   

    renzy205(ren) 能不能给俺发一份支持中文(附件)的,多谢了
    [email protected]