javamail

来源:互联网 发布:java\t是什么意思啊 编辑:程序博客网 时间:2024/05/08 13:58
public class MailHandle {
    
    public static void sendMail(String host, final String userName, final String password) {
      
      Properties pro = new Properties();
      pro.setProperty("mail.smtp.host", host);
      pro.setProperty("mail.smtp.auth", "true");
      pro.setProperty("mail.smtp.port", "25");
      Authenticator auth = new Authenticator() {

         protected PasswordAuthenticationgetPasswordAuthentication() {
            
            return new PasswordAuthentication(userName,password);
         }
      };
      Session session = Session.getDefaultInstance(pro,auth);
      Message message = new MimeMessage(session);
      try {
         Address from = new InternetAddress("admin@edpgc.com");
         message.setFrom(from);
         Address to = new InternetAddress("test@edpgc.com");
         message.setRecipient(RecipientType.TO, to);
         message.setSubject("测试中文乱码吗");
         message.setText("内容能否显示");
         message.setSentDate(new Date());
         Transport.send(message);
      } catch (Exception e) {
         e.printStackTrace();
      }
    }
    
    publicstatic void getMail(String host, String userName, String password){
      
      Properties props = new Properties();
      props.setProperty("mail.pop3.host", host);
      Session session =Session.getDefaultInstance(props);
      try {
         Store store = session.getStore("pop3");
         store.connect(userName, password);
         Folder folder = store.getFolder("INBOX");
         folder.open(Folder.READ_ONLY);
         Message[] messages = folder.getMessages();
         System.out.println(messages.length);
         for(int i = 0, len = messages.length; i < len;i++) {
            System.out.println(getFrom(messages[i]));
            System.out.println(getSubject(messages[i]));
            System.out.println(getContent(messages[i]));
            System.out.println();
         }
         folder.close(false);
         store.close();
      } catch (Exception e) {
         e.printStackTrace();
      }
    }
    publicstatic String getFrom(Message message) throws MessagingException{
      InternetAddress addr = (InternetAddress)message.getFrom()[0];
      String personal = addr.getPersonal();
      String address = "<" + addr.getAddress() +">";
      if(null == personal) {
         personal =addr.getAddress().substring(0,addr.getAddress().indexOf('@'));
      }
      return personal + address;
    }
    publicstatic String getSubject(Message message) throws MessagingException{
      return message.getSubject();
    }
    publicstatic String getContent(Part part) throws Exception {
      if(part.isMimeType("text/plain") ||part.isMimeType("text/plain")) {
         return part.getContent().toString();
      } else if(part.isMimeType("multipart/*")) {
         Part t = null;
         Multipart mul =(Multipart)part.getContent();
         int n = mul.getCount();
         for(int i = 0; i < n; i++) {
            Part p = mul.getBodyPart(i);
            String des = p.getDisposition();
            if((null != des) &&(des.equals(Part.ATTACHMENT) || des.equals(Part.INLINE))){
               String filename = p.getFileName();
               filename=javax.mail.internet.MimeUtility.decodeText(filename);
               System.out.println(filename);
               File f = new File("/test/"+filename);
               BASE64DecoderStream b =(BASE64DecoderStream)p.getContent();
               DataOutputStream out = new DataOutputStream(newFileOutputStream(f));
               byte[] data = new byte[b.available()];
               b.read(data);
               out.write(data);
               out.close();
            } else if(des == null) {
               t = p;
            }
         }
         return getContent(t);
      }
      return "";
    }
    publicstatic void main(String[] args) {
      //sendMail("localhost", "admin", "qwe123");
      //getMail("localhost","test","123456");
      //getMail("pop3.163.com", "******","******");
    }
}

0 0
原创粉丝点击