栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java Mail邮件接收工具类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java Mail邮件接收工具类

下面是一个邮件接收的工具类,有点长!!!

public class ReciveMail { 
 private MimeMessage msg = null; 
  private String saveAttchPath = ""; 
  private StringBuffer bodytext = new StringBuffer(); 
  private String dateformate = "yy-MM-dd HH:mm"; 
  
  public ReciveMail(MimeMessage msg){ 
    this.msg = msg; 
    } 
  public void setMsg(MimeMessage msg) { 
    this.msg = msg; 
  } 
  
   
  public String getFrom() throws MessagingException{ 
    InternetAddress[] address = (InternetAddress[]) msg.getFrom(); 
    String from = address[0].getAddress(); 
    if(from == null){ 
      from = ""; 
    } 
    String personal = address[0].getPersonal(); 
    if(personal == null){ 
      personal = ""; 
    } 
    String fromaddr = personal +"<"+from+">"; 
    return fromaddr; 
  } 
  
   
  public String getMailAddress(String type) throws MessagingException, UnsupportedEncodingException{ 
    String mailaddr = ""; 
    String addrType = type.toUpperCase(); 
    InternetAddress[] address = null; 
    
    if(addrType.equals("TO")||addrType.equals("CC")||addrType.equals("BCC")){ 
      if(addrType.equals("TO")){ 
 address = (InternetAddress[]) msg.getRecipients(Message.RecipientType.TO); 
      } 
      if(addrType.equals("CC")){ 
 address = (InternetAddress[]) msg.getRecipients(Message.RecipientType.CC); 
      } 
      if(addrType.equals("BCC")){ 
 address = (InternetAddress[]) msg.getRecipients(Message.RecipientType.BCC); 
      }    
      if(address != null){ 
 for(int i=0;i"; 
   mailaddr += ","+compositeto; 
 } 
 mailaddr = mailaddr.substring(1); 
      } 
    }else{ 
      throw new RuntimeException("Error email Type!"); 
    } 
    return mailaddr; 
  } 
  
   
  public String getSubject() throws UnsupportedEncodingException, MessagingException{ 
    String subject = ""; 
    subject = MimeUtility.decodeText(msg.getSubject()); 
    if(subject == null){ 
      subject = ""; 
    } 
    return subject; 
  } 
  
   
  public String getSendDate() throws MessagingException{ 
    Date sendDate = msg.getSentDate(); 
    SimpleDateFormat smd = new SimpleDateFormat(dateformate); 
    return smd.format(sendDate); 
  } 
  
   
  public String getBodyText(){ 
    return bodytext.toString(); 
  } 
  
   
  public void getMailContent(Part part) throws MessagingException, IOException{ 
    
    String contentType = part.getContentType(); 
    int nameindex = contentType.indexOf("name"); 
    boolean conname = false; 
    if(nameindex != -1){ 
      conname = true; 
    } 
    System.out.println("CONTENTTYPE:"+contentType); 
    if(part.isMimeType("text/plain")&&!conname){ 
      bodytext.append((String)part.getContent()); 
    }else if(part.isMimeType("text/html")&&!conname){ 
      bodytext.append((String)part.getContent()); 
    }else if(part.isMimeType("multipart 
  public boolean getReplySign() throws MessagingException{ 
    boolean replySign = false; 
    String needreply[] = msg.getHeader("Disposition-Notification-TO"); 
    if(needreply != null){ 
      replySign = true; 
    } 
    return replySign; 
  } 
  
   
  public String getMessageId() throws MessagingException{ 
    return msg.getMessageID(); 
  } 
  
   
  public boolean isNew() throws MessagingException{ 
    boolean isnew = false; 
    Flags flags = ((Message)msg).getFlags(); 
    Flags.Flag[] flag = flags.getSystemFlags(); 
    System.out.println("flags's length:"+flag.length); 
    for(int i=0;i

邮件接收与工具类的使用,有好几种邮件接收的写法!:

看了很多网上其他代码,pop3Server的值是pop.mail.163.com,但是试了试不成功,还有 user的值既可以是带有 username@...com也可以是username。

如果收件邮箱是163邮箱,必须先登陆163邮箱中设置,开启pop3服务。至于别的邮箱暂不知道。

public static void main(String[] args) throws Exception { 
    // 连接pop3服务器的主机名、协议、用户名、密码 
    String pop3Server = "pop.163.com"; 
    String protocol = "pop3"; 
    String user = "username"; 
    String pwd = "password"; 
     
    // 创建一个有具体连接信息的Properties对象 
    Properties props = new Properties(); 
    props.setProperty("mail.store.protocol", protocol); 
    props.setProperty("mail.pop3.host", pop3Server); 
     
    // 使用Properties对象获得Session对象 
    Session session = Session.getInstance(props); 
    session.setDebug(true); 
     
    // 利用Session对象获得Store对象,并连接pop3服务器 
    Store store = session.getStore(); 
    store.connect(pop3Server, user, pwd); 
     
    // 获得邮箱内的邮件夹Folder对象,以"只读"打开 
    Folder folder = store.getFolder("inbox"); 
    folder.open(Folder.READ_ONLY); 
     
    // 获得邮件夹Folder内的所有邮件Message对象 
    Message [] messages = folder.getMessages();  
    ReciveMail rm = null; 
    for(int i=0;i< messages.size() ;i++){ 
      rm = new ReciveMail((MimeMessage) messages[i]); 
      rm.recive(messages[i],i);; 
    } 
     folder.close(false); 
    store.close(); 
} 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/151804.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号