- 浏览: 312531 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (185)
- C# (8)
- Java (21)
- Oracle (25)
- mysql (3)
- SQLite (9)
- PHP (0)
- 虚拟机 (6)
- Tomcat (5)
- WebService (9)
- Linux (4)
- Windows (0)
- 域名和空间 (5)
- 测试 (1)
- Javascript (2)
- cache (1)
- 认证 (1)
- 图形报表 (1)
- Eclipse&plugins (1)
- struts2 (2)
- Swing (2)
- maven (1)
- BAT (3)
- JqueryUI (1)
- WEB (1)
- Jquery (1)
- 软件 (1)
- Google (1)
- sitemesh (1)
- Spring (1)
- 字体 (1)
- log4j (1)
- 日志级别 (1)
- 控制中心 (1)
- Log4jManager (1)
- log4j.jsp (1)
最新评论
-
chao_t:
不可以喃,楼主
实时控制log4j日志输出级别-Log4J日志级别控制中心 -
zercle:
感谢分享,还在下载中,一直都用plsql,昨天听别人说toad ...
Toad for Oracle 11绿色版本,加上plsql developerv9.0.1.1613 -
cmland:
赞一个,可以使用
Toad for Oracle 11绿色版本,加上plsql developerv9.0.1.1613 -
mozheshashou:
大哥 关键是那个服务器端怎么写啊 ,求指教啊,
说说JSON和JSONP,也许你会豁然开朗,含jQuery用例 -
bjxyj:
net.sourceforge.jdbclogger.Jdbc ...
p6spy的替代品:jdbc logger
来源:http://blog.csdn.net/superstorm5/archive/2008/03/07/2157022.aspx
网上很多用pop3收邮件的例子,但是用pop3收邮件只能获取收件箱里面所有邮件,邮件是否已读等标记无法获取,使用imap协议则避免了这个尴尬,imap不仅能获得一个邮件的详细信息(比如是否已读,是否回复),它还允许用户更改邮件的标记,但是目前支持imap协议的邮件服务器并不多,我知道的只有21cn和gmail,下面的例子中使用了代理 、SSL认证多个内容,请大家参考。
代码如下:
package com.yourcompany.mail;
import java.io.*;
import java.security.Security;
import java.text.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class gmailRead {
private MimeMessage mimeMessage = null;
private String saveAttachPath = ""; // 附件下载后的存放目录
private StringBuffer bodytext = new StringBuffer();// 存放邮件内容的StringBuffer对象
private String dateformat = "yy-MM-dd HH:mm"; // 默认的日前显示格式
/**
* * 構造函数,初始化一个MimeMessage對象
*
*/
public gmailRead() {
}
public gmailRead(MimeMessage mimeMessage) {
this.mimeMessage = mimeMessage;
System.out.println("create a PraseMimeMessage object........");
}
/**
* * 獲取一个MimeMessage對象
*
*/
public void setMimeMessage(MimeMessage mimeMessage) {
this.mimeMessage = mimeMessage;
}
/**
* * 獲得發件人的地址和姓名
*
*/
public String getFrom() throws Exception {
InternetAddress address[] = (InternetAddress[]) mimeMessage.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 Exception {
String mailaddr = "";
String addtype = type.toUpperCase();
InternetAddress[] address = null;
if (addtype.equals("TO") || addtype.equals("CC")
|| addtype.equals("BCC")) {
if (addtype.equals("TO")) {
address = (InternetAddress[]) mimeMessage
.getRecipients(Message.RecipientType.TO);
} else if (addtype.equals("CC")) {
address = (InternetAddress[]) mimeMessage
.getRecipients(Message.RecipientType.CC);
} else {
address = (InternetAddress[]) mimeMessage
.getRecipients(Message.RecipientType.BCC);
}
if (address != null) {
for (int i = 0; i < address.length; i++) {
String email = address[i].getAddress();
if (email == null)
email = "";
else {
email = MimeUtility.decodeText(email);
}
String personal = address[i].getPersonal();
if (personal == null)
personal = "";
else {
personal = MimeUtility.decodeText(personal);
}
String compositeto = personal + "<" + email + ">";
mailaddr += "," + compositeto;
}
mailaddr = mailaddr.substring(1);
}
} else {
throw new Exception("Error emailaddr type!");
}
return mailaddr;
}
/**
* * 獲得郵件主题
*
*/
public String getSubject() throws MessagingException {
String subject = "";
try {
subject = MimeUtility.decodeText(mimeMessage.getSubject());
if (subject == null)
subject = "";
} catch (Exception exce) {
}
return subject;
}
/**
* * 獲得郵件的發送日期
*
*/
public String getSentDate() throws Exception {
Date sentdate = mimeMessage.getSentDate();
SimpleDateFormat format = new SimpleDateFormat(dateformat);
return format.format(sentdate);
}
/**
* * 獲得郵件的正文内容
*
*/
public String getBodyText() {
return bodytext.toString();
}
/**
*
* 解析郵件,把得到的郵件内容保存到一个StringBuffer对象中,解析邮件 *
*
* 主要是根据MimeType类型的不同执行不同的操作,一步一步的解析
*
*/
public void getMailContent(Part part) throws Exception {
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 counts = multipart.getCount();
for (int i = 0; i < counts; i++) {
getMailContent(multipart.getBodyPart(i));
}
} else if (part.isMimeType("message/rfc822")) {
getMailContent((Part) part.getContent());
} else {
}
}
/**
* * 判断此邮件是否需要回执,如果需要回执返回"true",否则返回"false"
*
*/
public boolean getReplySign() throws MessagingException {
boolean replysign = false;
String needreply[] = mimeMessage
.getHeader("Disposition-Notification-To");
if (needreply != null) {
replysign = true;
http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlo
发表评论
package com.yourcompany.mail;
import java.io.*;
import java.security.Security;
import java.text.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class gmailRead {
private MimeMessage mimeMessage = null;
private String saveAttachPath = ""; // 附件下载后的存放目录
private StringBuffer bodytext = new StringBuffer();// 存放邮件内容的StringBuffer对象
private String dateformat = "yy-MM-dd HH:mm"; // 默认的日前显示格式
/**
* * 構造函数,初始化一个MimeMessage對象
*
*/
public gmailRead() {
}
public gmailRead(MimeMessage mimeMessage) {
this.mimeMessage = mimeMessage;
System.out.println("create a PraseMimeMessage object........");
}
/**
* * 獲取一个MimeMessage對象
*
*/
public void setMimeMessage(MimeMessage mimeMessage) {
this.mimeMessage = mimeMessage;
}
/**
* * 獲得發件人的地址和姓名
*
*/
public String getFrom() throws Exception {
InternetAddress address[] = (InternetAddress[]) mimeMessage.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 Exception {
String mailaddr = "";
String addtype = type.toUpperCase();
InternetAddress[] address = null;
if (addtype.equals("TO") || addtype.equals("CC")
|| addtype.equals("BCC")) {
if (addtype.equals("TO")) {
address = (InternetAddress[]) mimeMessage
.getRecipients(Message.RecipientType.TO);
} else if (addtype.equals("CC")) {
address = (InternetAddress[]) mimeMessage
.getRecipients(Message.RecipientType.CC);
} else {
address = (InternetAddress[]) mimeMessage
.getRecipients(Message.RecipientType.BCC);
}
if (address != null) {
for (int i = 0; i < address.length; i++) {
String email = address[i].getAddress();
if (email == null)
email = "";
else {
email = MimeUtility.decodeText(email);
}
String personal = address[i].getPersonal();
if (personal == null)
personal = "";
else {
personal = MimeUtility.decodeText(personal);
}
String compositeto = personal + "<" + email + ">";
mailaddr += "," + compositeto;
}
mailaddr = mailaddr.substring(1);
}
} else {
throw new Exception("Error emailaddr type!");
}
return mailaddr;
}
/**
* * 獲得郵件主题
*
*/
public String getSubject() throws MessagingException {
String subject = "";
try {
subject = MimeUtility.decodeText(mimeMessage.getSubject());
if (subject == null)
subject = "";
} catch (Exception exce) {
}
return subject;
}
/**
* * 獲得郵件的發送日期
*
*/
public String getSentDate() throws Exception {
Date sentdate = mimeMessage.getSentDate();
SimpleDateFormat format = new SimpleDateFormat(dateformat);
return format.format(sentdate);
}
/**
* * 獲得郵件的正文内容
*
*/
public String getBodyText() {
return bodytext.toString();
}
/**
*
* 解析郵件,把得到的郵件内容保存到一个StringBuffer对象中,解析邮件 *
*
* 主要是根据MimeType类型的不同执行不同的操作,一步一步的解析
*
*/
public void getMailContent(Part part) throws Exception {
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 counts = multipart.getCount();
for (int i = 0; i < counts; i++) {
getMailContent(multipart.getBodyPart(i));
}
} else if (part.isMimeType("message/rfc822")) {
getMailContent((Part) part.getContent());
} else {
}
}
/**
* * 判断此邮件是否需要回执,如果需要回执返回"true",否则返回"false"
*
*/
public boolean getReplySign() throws MessagingException {
boolean replysign = false;
String needreply[] = mimeMessage
.getHeader("Disposition-Notification-To");
if (needreply != null) {
replysign = true;
http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlo
import java.io.*;
import java.security.Security;
import java.text.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class gmailRead {
private MimeMessage mimeMessage = null;
private String saveAttachPath = ""; // 附件下载后的存放目录
private StringBuffer bodytext = new StringBuffer();// 存放邮件内容的StringBuffer对象
private String dateformat = "yy-MM-dd HH:mm"; // 默认的日前显示格式
/**
* * 構造函数,初始化一个MimeMessage對象
*
*/
public gmailRead() {
}
public gmailRead(MimeMessage mimeMessage) {
this.mimeMessage = mimeMessage;
System.out.println("create a PraseMimeMessage object........");
}
/**
* * 獲取一个MimeMessage對象
*
*/
public void setMimeMessage(MimeMessage mimeMessage) {
this.mimeMessage = mimeMessage;
}
/**
* * 獲得發件人的地址和姓名
*
*/
public String getFrom() throws Exception {
InternetAddress address[] = (InternetAddress[]) mimeMessage.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 Exception {
String mailaddr = "";
String addtype = type.toUpperCase();
InternetAddress[] address = null;
if (addtype.equals("TO") || addtype.equals("CC")
|| addtype.equals("BCC")) {
if (addtype.equals("TO")) {
address = (InternetAddress[]) mimeMessage
.getRecipients(Message.RecipientType.TO);
} else if (addtype.equals("CC")) {
address = (InternetAddress[]) mimeMessage
.getRecipients(Message.RecipientType.CC);
} else {
address = (InternetAddress[]) mimeMessage
.getRecipients(Message.RecipientType.BCC);
}
if (address != null) {
for (int i = 0; i < address.length; i++) {
String email = address[i].getAddress();
if (email == null)
email = "";
else {
email = MimeUtility.decodeText(email);
}
String personal = address[i].getPersonal();
if (personal == null)
personal = "";
else {
personal = MimeUtility.decodeText(personal);
}
String compositeto = personal + "<" + email + ">";
mailaddr += "," + compositeto;
}
mailaddr = mailaddr.substring(1);
}
} else {
throw new Exception("Error emailaddr type!");
}
return mailaddr;
}
/**
* * 獲得郵件主题
*
*/
public String getSubject() throws MessagingException {
String subject = "";
try {
subject = MimeUtility.decodeText(mimeMessage.getSubject());
if (subject == null)
subject = "";
} catch (Exception exce) {
}
return subject;
}
/**
* * 獲得郵件的發送日期
*
*/
public String getSentDate() throws Exception {
Date sentdate = mimeMessage.getSentDate();
SimpleDateFormat format = new SimpleDateFormat(dateformat);
return format.format(sentdate);
}
/**
* * 獲得郵件的正文内容
*
*/
public String getBodyText() {
return bodytext.toString();
}
/**
*
* 解析郵件,把得到的郵件内容保存到一个StringBuffer对象中,解析邮件 *
*
* 主要是根据MimeType类型的不同执行不同的操作,一步一步的解析
*
*/
public void getMailContent(Part part) throws Exception {
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 counts = multipart.getCount();
for (int i = 0; i < counts; i++) {
getMailContent(multipart.getBodyPart(i));
}
} else if (part.isMimeType("message/rfc822")) {
getMailContent((Part) part.getContent());
} else {
}
}
/**
* * 判断此邮件是否需要回执,如果需要回执返回"true",否则返回"false"
*
*/
public boolean getReplySign() throws MessagingException {
boolean replysign = false;
String needreply[] = mimeMessage
.getHeader("Disposition-Notification-To");
if (needreply != null) {
replysign = true;
http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlo
发表评论
-
Java 实现快递查询 (免费) ,不用输入验证码
2013-05-25 21:54 1659查快递的时候发现了一个http://www.kaidi10 ... -
实时控制log4j日志输出级别-Log4J日志级别控制中心
2013-01-27 01:45 2405动态控制Log4J日志级别,只需要一个JSP页面 ... -
动态加载配置文件类,通用类
2012-07-21 12:13 2221package config; import java. ... -
Java 修复HTML标签
2012-07-03 14:15 1772开源的组件:http://sourceforge.net/pr ... -
正则表达式中的java 转义字符
2012-05-08 22:19 1678java 的转义字符,在正则表达式中应用 ... -
java解析SQL脚本
2012-05-08 22:17 1562/** * 执行初始化SQL脚本 * @param ... -
Protocol Buffer入门——轻松搭建java环境
2012-04-19 21:49 1236Protocol Buffer入门—— ... -
Jersey framework开发RESTFUL应用
2012-04-19 21:46 1420本文演示环境为eclipse + Maven插件 + J ... -
RMI、Hessian、Burlap、Httpinvoker、WebService的比較
2012-04-09 19:56 2893RMI、Hessian、Burlap、Httpin ... -
一个开源的Java快速开发平台
2012-04-10 09:24 1988http://www.j-hi.net/ J-HI是一 ... -
apache common DurationFormatUtils
2012-04-01 10:42 1191日期相減(兩日期相差多少天,月,年): Date d1 ... -
使用Perf4J进行性能分析和监控
2012-04-01 10:20 1008使用Perf4J进行性能分析和监控 作者 ... -
jsoup 是一款 Java 的HTML 解析器
2012-03-21 23:31 1116jsoup 是一款 Java 的HTML 解析器,可 ... -
struts2-redirect和redirect-action的一点区别
2012-03-15 14:23 748struts2-redirect和redirect-actio ... -
t150ckh request.getHeader("user-agent")解析浏览器
2012-03-07 20:18 19974public class BrowseTool { ... -
UrlRewriteFilter 学习笔记
2011-01-18 16:18 17331、简介 UrlRewriteFilter是 ... -
java.lang.SecurityException: Prohibited package name
2011-01-02 15:39 3075问题 java.lang.SecurityExceptio ... -
Java 线程Join的用法
2010-11-18 10:11 1024在上面的例子中多次使用到了Thread类的join方法。我想大 ... -
Java 守护线程与非守护线程的区别
2010-11-18 10:05 2492ublic static void main ... -
关于JAVA中enum枚举类型的思考
2010-10-31 09:58 1369package utils; /** * @ ...
相关推荐
IMAP(Internet Message Access Protocol)是一种标准的邮件访问协议,用于从邮件服务器检索邮件。Exchange 2007是微软的企业级邮件服务器,支持IMAP、POP3等多种邮件协议。 在JavaMail中使用IMAP协议来收取...
IMAP(Internet Message Access Protocol)邮件接收是一种标准的电子邮件协议,允许用户在邮件服务器上管理邮件。相较于POP3,IMAP提供了更多的功能,比如离线阅读、邮件分类、标记和搜索等。它允许用户在不下载全部...
Python的IMAP接收邮件程序
Sakmail控件是用于Delphi中的邮件处理组件,它支持POP3、IMAP4等多种邮件协议,使得开发者能够轻松地集成邮件功能到自己的应用中。在这个邮件接收客户端中,Sakmail控件负责连接到邮件服务器,接收邮件,并将邮件...
Lumisoft是一家专注于提供网络通信解决方案的公司,他们的产品中包含了POP3和IMAP这两种常用的邮件接收协议。本文将深入探讨Lumisoft如何利用这两种协议帮助用户有效地接收邮件。 POP3(Post Office Protocol ...
Cyrus-IMAP是一个强大的邮件存储和检索服务器,支持IMAP4rev1和POP3协议,允许用户通过多种客户端访问和管理邮件。Cyrus-IMAP的优势在于其高效的多线程设计和对大型邮件存储的优化。它提供了对邮件的全文搜索、邮件...
LumiSoft.Net.IMAP库为C#开发者提供了一个强大的工具,用于通过IMAP协议接收和管理邮件。在这个例子中,我们将深入探讨如何利用LumiSoft.Net.IMAP库创建一个简单的控制台应用程序来接收邮件。 首先,LumiSoft.Net....
本压缩包包含的"IMAP+SMTP+SSL+IPV6.e"源码文件,是实现收发电子邮件功能的易语言代码示例,特别强调了对IPv4和IPv6的支持以及SSL安全连接,这在当今网络安全需求日益增强的背景下显得尤为重要。 首先,我们来了解...
IMAP协议是一种标准的邮件访问协议,允许用户从邮件服务器上检索电子邮件,而无需将邮件实际存储在本地设备上。在Delphi 2010这样的集成开发环境中,利用IMAP协议可以实现高效、可靠的邮件处理功能。 本项目标题...
IMAP是一种标准的邮件协议,允许用户从邮件服务器上下载邮件,而不必将邮件存储在本地设备上。这使得用户可以从任何地方访问他们的邮件,并保持同步。与POP3协议相比,IMAP提供了更高级的功能,如邮件的分类、标记和...
用于接收邮件IMAP类库,有POP3接收邮件的EMail.dll类库也已上传,若有需要,自己找吧
SMTP库允许开发者编写程序来创建、编辑和发送邮件,包括添加附件、设置发件人和收件人、处理邮件头信息等。在Email Library中,SMTP功能使得开发者可以轻松实现邮件的发送功能。 3. **POP3 (Post Office Protocol ...
php_imap.dll(php收邮件要用到的一个插件)
源码通过套接字实现了IMAP指令获取邮件,源码实现了链接收信服务器_IMAP,登录邮箱,发送数据,接收数据,发送IMAP命令,断开连接等命令。点评:源码调用了常量支持库,如果易语言没有这个支持库,请自行在网站上...
它提供了一个强大且易于使用的 API,支持多种邮件协议,包括 SMTP、POP3、和 IMAP。 MailKit 是一个开源的 C# 邮件处理库,用于在应用程序中发送和接收电子邮件。它提供了一个强大且易于使用的 API,支持多种邮件...
在IT领域,尤其是在电子邮件开发中,使用IMAP(Internet Message Access Protocol)协议是常见的方法,它允许客户端应用程序从邮件服务器上检索邮件。本教程将详细讲解如何使用C#语言结合MailKit库来实现IMAP协议...
在VC++中,需要实现POP3或IMAP4客户端,登录邮件服务器,列出邮件,下载指定邮件,以及可能的邮件操作。 3. **MFC库**:MFC库为开发者提供了许多预先包装好的类,简化了窗口、控件、网络、数据库等操作。在本项目中...
lumisoft pop3 imap接收邮件总结的两种方法,希望对大家写接收邮件有帮助。。感觉不错就给点评论吧。谢谢。 我有用Mailkit写了个邮件审批实例,感觉比lumisoft更简单,更快 ...
这可能是由于安全或性能考虑,因此,如果你需要获取历史邮件,可能需要考虑使用IMAP协议或者API接口,如QQ邮箱的SMTP/POP3/IMAP API。 在实际项目中,你还需要考虑错误处理和异常捕获,确保在出现问题时能够优雅地...
在本文中,我们将深入探讨如何使用Qt库中的POP3功能来实现自动登录邮箱、接收邮件以及下载附件。Qt是一个跨平台的应用程序开发框架,广泛应用于C++编程,它提供了丰富的功能,包括网络通信模块,使得我们可以方便地...