- 浏览: 325661 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
ajax忘了跳转:
谢谢分享,基于你的思路。我改良了一版,可供参考public s ...
一个整数的所有最小因子 -
baobaodehao1991:
楼主,合并多列,单元格内容并不能居中,选中合并的单元格,除了前 ...
把table表格内容导出为excel -
lbaaixy:
楼主,小弟最近也在弄这个东西。有点小问题java.lang.C ...
flex + red5实现视频会议 -
weilikk:
好像只能替换整行,如果是一行中有其他数据,只替换行中某个位置就 ...
poi替换模板标签为图片 -
chinaxiaofeng8:
在吗,兄弟,你那个代码怎么运行看效果的
flex + red5实现视频会议
package com.chinahrt.zyn; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Properties; import javax.mail.BodyPart; import javax.mail.Flags; import javax.mail.Folder; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Part; import javax.mail.Session; import javax.mail.Store; import javax.mail.URLName; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeUtility; public class ReciveMailUtil { private MimeMessage msg = null; private String saveAttchPath=""; private StringBuffer bodytext = new StringBuffer(); private String dateformate = "yy-MM-dd HH:mm:ss"; public ReciveMailUtil (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; } //获取邮件收件人,抄送,密送的地址和信息,"to"-->收件人,"cc"-->抄送人,"bcc"-->密送地址 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<address.length;i++){ String mail = address[i].getAddress(); if(mail == null){ mail = ""; }else{ mail = MimeUtility.decodeText(mail); } String personal = address[i].getPersonal(); if(personal == null){ personal = ""; }else{ personal = MimeUtility.decodeText(personal); } String compositeto = personal +"<"+mail+">"; 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 sdf = new SimpleDateFormat(dateformate); return sdf.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/*")){ Multipart multipart = (Multipart)part.getContent(); int count = multipart.getCount(); for(int i=0;i<count;i++){ getMailContent(multipart.getBodyPart(i)); } }else if(part.isMimeType("message/rfc822")){ getMailContent((Part)part.getContent()); } } //判断邮件是否需要回执,如需返回true,否则返回false public boolean getReplySign()throws MessagingException{ boolean replySign = false; String needreplay[] = msg.getHeader("Disposition-Notification-TO"); if(needreplay != null){ replySign = true; } return replySign; } //获取该邮件的message-id public String getMessageId()throws MessagingException{ return msg.getMessageID(); } //判断该邮件是否已读,如未读返回false,已读返回true public boolean isNew() throws MessagingException{ boolean isnew = false; Flags flags = ((Message)msg).getFlags(); Flags.Flag[] flag = flags.getSystemFlags(); System.out.println("flags's legth:"+flag.length); for(int i=0;i<flag.length;i++){ if(flag[i] == Flags.Flag.SEEN){ isnew = true; System.out.println("seen message ......"); break; } } return isnew; } //判断邮件是否包含附件 public boolean isContainAttch(Part part) throws MessagingException,IOException{ boolean flag = false; String contentType = part.getContentType(); if(part.isMimeType("multipart/*")){ Multipart multipart = (Multipart)part.getContent(); int count = multipart.getCount(); for(int i=0;i<count;i++){ BodyPart bodypart = multipart.getBodyPart(i); String dispostion = bodypart.getDisposition(); if((dispostion != null) && (dispostion.equals(Part.ATTACHMENT)||dispostion.equals(Part.INLINE))){ flag = true; }else if(bodypart.isMimeType("multipart/*")){ flag = isContainAttch(bodypart); }else{ String conType = bodypart.getContentType(); if(conType.toLowerCase().indexOf("appliaction")!=-1){ flag = true; } if(conType.toLowerCase().indexOf("name")!=-1){ flag = true; } } } }else if(part.isMimeType("message/rfc822")){ flag = isContainAttch((Part)part.getContent()); } return flag; } //保存附件 public void saveAttchMent(Part part) throws MessagingException,IOException{ String filename = ""; if(part.isMimeType("multipart/*")){ Multipart mp = (Multipart)part.getContent(); for(int i=0;i<mp.getCount();i++){ BodyPart mpart = mp.getBodyPart(i); String dispostion = mpart.getDisposition(); if((dispostion!=null) && (dispostion.equals(Part.ATTACHMENT)|| dispostion.equals(Part.INLINE))){ filename = mpart.getFileName(); if(filename.toLowerCase().indexOf("gb2312")!=-1){ filename = MimeUtility.decodeText(filename); } saveFile(filename,mpart.getInputStream()); }else if(mpart.isMimeType("multipart/*")){ saveAttchMent(mpart); }else{ filename = mpart.getFileName(); if(filename != null && (filename.toLowerCase().indexOf("gb2312")!=-1)){ filename = MimeUtility.decodeText(filename); } saveFile(filename,mpart.getInputStream()); } } }else if(part.isMimeType("message/rfc822")){ saveAttchMent((Part)part.getContent()); } } //获取保存附件的地址 public String getSaveAttchPath(){ return saveAttchPath; } //设置保存附件地址 public void setSaveAttchPath(String savaAttchPath){ this.saveAttchPath = saveAttchPath; } //设置日期格式 public void setDateformate(String dateformate){ this.dateformate = dateformate; } private void saveFile(String filename,InputStream inputStream) throws IOException{ String osname = System.getProperty("os.name"); String storedir = getSaveAttchPath(); String sepatror = ""; if(osname == null){ osname = ""; } if(osname.toLowerCase().indexOf("win")!=-1){ sepatror = "//"; if(storedir == null ||"".equals(storedir)){ storedir = "d://temp"; } }else{ sepatror = "/"; storedir = "/temp"; } File storefile = new File(storedir+sepatror+filename); System.out.println("storefile's path:"+storefile.toString()); BufferedOutputStream bos = null; BufferedInputStream bis = null; try{ bos = new BufferedOutputStream(new FileOutputStream(storefile)); bis = new BufferedInputStream(inputStream); int c; while((c=bis.read())!=-1){ bos.write(c); bos.flush(); } }catch(FileNotFoundException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); }finally{ bos.close(); bis.close(); } } public void recive(Part part,int i) throws MessagingException,IOException{ System.out.println("@@@start@@@"); System.out.println("Message"+i+" subject:"+getSubject()); System.out.println("Message"+i+" from"+getFrom()); System.out.println("Message"+i+" isNew:"+isNew()); boolean flag = isContainAttch(part); System.out.println("Message"+i+" iscontainAttch:"+flag); System.out.println("Message"+i+" replySign:"+getReplySign()); getMailContent(part); System.out.println("Message"+i+" content:"+getBodyText()); setSaveAttchPath("c://temp//"+i); if(flag){ saveAttchMent(part); } System.out.println("@@@end@@@"); } /** * @param args */ public static void main(String[] args) throws MessagingException,IOException{ Properties props = new Properties(); props.setProperty("mail.smtp.host", "smtp.163.com"); props.setProperty("mail.smtp.auth", "true"); Session session = Session.getDefaultInstance(props, null); URLName urlname = new URLName("pop3","pop3.163.com",110,null,"账号","密码"); Store store = session.getStore(urlname); store.connect(); Folder folder = store.getFolder("INBOX"); folder.open(Folder.READ_ONLY); Message msgs[] = folder.getMessages(); int count = msgs.length; System.out.println(count); ReciveMailUtil rm = null; for(int i=0;i<count;i++){ rm = new ReciveMailUtil((MimeMessage)msgs[i]); rm.recive(msgs[i], i); } } }
发表评论
-
仿微信9宫格群组头像
2015-07-14 20:27 13440开发了一个聊天工具,群组头像像仿照微信的头像那样显示成员头像合 ... -
汉字转拼音
2015-06-18 13:44 1082/* * Copyright (C) 2011 The ... -
poi替换模板标签为图片
2013-08-19 14:49 8999在问答频道看到有人求poi模板替换图片的需求,百度一下,网上没 ... -
为hibernate添加数据库方言函数
2013-06-27 19:31 5247在sessionFactory中配置hibernate.dia ... -
jvm内存映像分析
2013-05-23 20:11 6439jdk自带的jmap就是java内存映像工具,可以 ... -
n个数组各取一数的不重复组合
2013-04-27 00:00 2905package collection; import ... -
求最长的递增子数组
2013-04-24 13:58 1364package com.chinahrt.zyn.pang ... -
从m个字符选出n个的所有组合
2013-04-23 15:49 1524import java.util.ArrayList;imp ... -
查找最小的K个数
2013-04-13 12:04 1599package com.chinahrt.zyn.pango ... -
求连续子数组的最大和
2013-04-11 17:27 1482package com.chinahrt.zyn.pang ... -
求N个字符的全排列
2013-04-10 10:55 1739package com.chinahrt.zyn.pango ... -
web.xml的读取顺序
2013-03-30 11:22 4404由于项目中 ... -
spring的bean实例化时间
2013-03-30 10:54 2581前两天在问答频道看到有同学问spring的b ... -
把table表格内容导出为excel
2012-12-21 13:54 6151package com.chinahrt.report.e ... -
Java 编程规则(think in java 第四版)
2012-11-22 13:38 1222(1) 类名首字母应该大写 ... -
jetty嵌入式使用方法
2012-09-17 16:08 12161以jetty-hightide-8.1.6.v20120903 ... -
java求集合交集和并集
2012-07-17 20:16 3519在问答频道遇到求助集合求交集或者并集的问题,自己翻了下api, ... -
应该被记住的 8 位 Java 人物
2012-06-27 21:54 878应该被记住的 8 位 Java 人物 81人收藏此新闻, ... -
自己写的一个类orm映射工具
2012-06-16 16:47 4230利用xml做配置文件,可以动态生成sql: package ... -
tomcat源码阅读(一)
2012-04-06 13:13 0次处代码以tomcat_6_0_18版本为例,从官 ...
相关推荐
在VC++编程环境中,利用JMail库来接收邮件是一个常见的任务。JMail是一个功能丰富的电子邮件组件,它提供了在各种编程语言中发送和接收邮件的能力,包括VC++。本篇文章将详细探讨如何在VC++中使用JMail来实现邮件的...
标题中的“jmail接收邮件,通过网页浏览邮箱的邮件”涉及到的是使用JMail组件在Web应用程序中实现邮件的接收和查看功能。JMail是一款由AspDotNetStorefront开发的.NET组件,它允许开发者在ASP.NET环境中发送和接收...
本资源提供的"非常好的Jmail接收邮件和发送邮件源码"是一个宝贵的参考资料,可以帮助程序员理解如何利用Jmail进行邮件处理。 Jmail的核心功能包括: 1. **发送邮件**:Jmail提供了方便的API,使得通过SMTP(Simple...
这个文件可能是另一个接收邮件的示例代码或者另一种邮件接收策略,比如使用IMAP4协议,或者包含更复杂的邮件过滤和处理逻辑。 总之,通过使用JMail库,开发者可以在C#项目中轻松地实现邮件接收和附件处理。结合`...
首先,要使用JMail接收邮件,你需要创建一个JMail实例,并配置相应的服务器设置。这包括POP3服务器地址、端口号(通常是110,SSL加密时为995)、用户名和密码。这些信息通常可以从你的邮件服务提供商那里获取。 ```...
通过JAMIL收取邮件代码,需要支持POP3的服务器,收取的邮件有列表显示,点击列表可显示邮件内容
接收邮件则主要涉及到POP3或IMAP4协议的使用: 1. 创建邮件接收器:使用`new JPop3()`或`new JImap4()`,根据选择的协议初始化邮件接收器。 2. 连接到邮件服务器:设置服务器地址、端口、用户名和密码,如`pop3....
1. **Jmail库介绍**:Jmail是专门为.NET Framework设计的一个邮件处理组件,它允许开发者在ASP.NET应用程序中方便地发送和接收邮件。它支持SMTP(Simple Mail Transfer Protocol)协议发送邮件,以及POP3(Post ...
在使用Jmail接收邮件时,程序会连接到POP服务器,验证身份后下载指定邮箱的邮件。 在构建邮件收发系统时,开发者需要考虑以下几个关键点: 1. **配置邮件服务器参数**:包括SMTP服务器地址、端口号、用户名、密码...
在提供的压缩包文件中,"SendEmail"可能是发送邮件的示例代码,而"GetEmail"则可能是接收邮件的示例代码。你可以参考这两个文件来实现具体的功能。需要注意的是,实际应用中,为了提高代码的可维护性和安全性,建议...
这工程的主要功能是用两个窗口实现邮件的发送和接受,主要用到了MailMessage,...接收邮件时需要使用jmail组件连接pop服务器,然后获取邮件接收者所接受的邮件,并将接受到的邮件信息显示到DataGridView控件中
它可能包含了如何初始化邮件会话、设置邮件属性、构建邮件对象、连接SMTP服务器发送邮件以及使用POP3服务器接收邮件的步骤。通过运行和分析这个示例,开发者可以快速理解JMail的使用方法。 5. **使用JMail的步骤**...
在"利用Jmail接收邮件"中,主要涉及到`jmail.POP3Class`对象的使用: 1. **连接POP3服务器**: - `popMail.Connect()`方法用于连接到POP3服务器,参数分别为用户名、密码、服务器地址和端口号。 2. **获取邮件...
### 使用Jmail发送与接收邮件的关键技术点 #### 发送邮件 在提供的代码片段中,主要涉及了如何使用Jmail库来实现邮件的发送功能。Jmail是一个强大的.NET类库,用于开发支持SMTP、POP3协议的应用程序。下面将详细...
1. **初始化JMail对象**:在VB代码中,你需要先创建一个JMail对象实例,然后设置必要的属性,如SMTP服务器(用于发送邮件)和POP3服务器(用于接收邮件)的地址,以及用户名和密码等认证信息。 2. **连接到POP3...
4. **收邮件.txt**:可能是一份关于如何使用Jmail接收邮件的文本说明。 5. **jmail说明.txt**:可能涵盖Jmail控件的基本概念和使用注意事项。 6. **mailaddress.txt**:可能涉及到邮件地址的处理和验证,对于批量...
3. **身份验证与安全**:JMail支持SSL(安全套接层)和TLS(传输层安全)加密,确保在不安全的网络环境下发送和接收邮件时数据的安全性。此外,它还支持SMTP的身份验证,如PLAIN、LOGIN和CRAM-MD5等认证方式。 4. *...
1. **初始化Jmail对象**:首先,在代码中创建一个JMail对象,并设置必要的配置,如SMTP服务器(用于发送邮件)和POP3服务器(用于接收邮件)的信息,还包括用户名和密码等认证信息。 ```csharp JMail jmail = new ...
JMail是一款广泛使用的.NET组件,它允许开发者通过SMTP(Simple Mail Transfer Protocol)服务来发送邮件,同时也支持POP3(Post Office Protocol version 3)用于接收邮件。下面将详细阐述JMail的使用、SMTP服务器...
首先,Jmail是一个由DimiSoft公司开发的组件,它支持SMTP、POP3、IMAP等协议,使得在.NET应用程序中发送和接收邮件变得简单。Jmail提供了丰富的功能,包括HTML邮件、附件、多语言支持、邮件模板等,非常适合企业级...