我们可用它来建立如Eudora、Foxmail、MS Outlook Express一般的邮件用户代理程序(Mail User Agent,简称MUA)。而不是像sendmail或者其它的邮件传输代理(Mail Transfer Agent,简称MTA)程序那样可以传送、递送、转发邮件。从另外一个角度来看,我们这些电子邮件用户日常用MUA程序来读写邮件,而MUA依赖着MTA处理邮件的递送。
在清楚了到MUA与MTA之间的关系后,让我们看看JavaMail API是如何提供信息访问功能的吧!
为了使用JavaMail API,需要从http://java.sun.com/products/javamail/downloads/index.html下载文件名格式为javamail-[version].zip的文件(这个文件中包括了JavaMail实现),并将其中的mail.jar文件添加到CLASSPATH中。这个实现提供了对SMTP、IMAP4、POP3的支持。
注意:在安装JavaMail实现之后,我们将在demo目录中发现许多有趣的简单实例程序。
在安装了JavaMail之后,我们还需要安装JavaBeans Activation Framework,因为这个框架是JavaMail API所需要的。如果我们使用J2EE的话,那么我们并无需单独下载JavaMail,因为它存在于J2EE.jar中,只需将J2EE.jar加入到CLASSPATH即可。
public class Test {
public static void main(String[]args){
Properties pop=new Properties();
Session session=Session.getDefaultInstance(pop);
String host="",username="", password="";//要读取的邮箱的服务器地址,邮箱用户名和密码
try {
Store store= session.getStore("pop3");
store.connect(host,username, password);
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);//以只读的方式打开folder
Message message[] = folder.getMessages();
BufferedReader reader = new BufferedReader ( new InputStreamReader(System.in));
for(int i=0;i<message.length;i++){
String content="";
Object obj=message[i].getContent();//邮件内容,还可获取邮件发件人,主题等...
if(obj instanceof String){//这个类别的判断是由于不是跟host同样的服务器地址邮件无法直接获取到真正的内容,而是一个类
content=(String)obj;
System.out.println(i+","+new String(content.getBytes("ISO8859-1"),"GBK"));//这里是由于我读取内容时出现了乱码,而做的一个操作,可根据具体情况来看}
else {System.out.println(obj);}
}folder.close(false);store.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
public class Test {
public static void main(String[]args){
Properties pop=new Properties();
Session session=Session.getDefaultInstance(pop);
String host="",username="", password="";//要读取的邮箱的服务器地址,邮箱用户名和密码
try {
Store store= session.getStore("pop3");
store.connect(host,username, password);
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);//注意这里与读取时的区别
Message message[] = folder.getMessages();
BufferedReader reader = new BufferedReader ( new InputStreamReader(System.in));
for(int i=0;i<message.length;i++){
message[i].setFlag(Flags.Flag.DELETED, true);//我这里是删除了所有的文件,可根据需要来编写代码
}folder.close(true);//注意这里与读取的区别,这里是确认删除的操作....
store.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
public static void main(String[]args){
Properties pop=new Properties();
String host="smtp.wo.com.cn";
String from ="username@163.com",to="username@wo.com.cn";
pop.put("mail.smtp.host", host);
Session session=Session.getDefaultInstance(pop);
Message message=new MimeMessage(session);
try {
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("Hello JavaMail");message.setText("Welcome to JavaMail");
Transport.send(message);
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
分享到:
相关推荐
JavaMail邮件发送工具类是Java开发中用于发送电子邮件的标准库,它提供了丰富的API来处理复杂的邮件功能。在JavaMail中,我们可以通过创建特定的类和对象来实现邮件的发送。以下将详细介绍这些类以及如何使用它们。 ...
在JavaMail邮件管理系统中,用户还可以执行其他高级操作,比如创建、删除和重命名邮件文件夹,管理邮件标记,处理邮件搜索等。同时,为了提供良好的用户体验,系统通常会封装这些底层操作,以图形化界面展示,如...
1. **邮件发送**:使用JavaMail,可以构建SMTP(简单邮件传输协议)连接来发送邮件。首先,设置SMTP服务器的地址、端口以及用户名和密码,然后创建`MimeMessage`对象,设置发件人、收件人、主题和邮件正文。如果需要...
- **JavaMail API**:JavaMail API是一个用于读取、编写和发送电子邮件的可选包(标准扩展)。它可以用来构建基于标准的电子邮件客户端,并且支持多种互联网邮件协议,如SMTP(用于发送邮件)、POP(用于接收邮件)...
JavaMail邮件实战开发资料主要涉及的是使用Java编程语言发送和接收电子邮件的技术。JavaMail是一个开源API,它提供了在Java应用程序中处理电子邮件的功能。这个资料可能是针对开发者,特别是那些需要在项目中集成...
8. **邮件过滤和搜索**:除了基本的邮件发送和接收,JavaMail还提供了邮件过滤和搜索功能。开发者可以通过`Folder`对象的`getMessages()`方法获取所有邮件,然后使用`Message`的属性进行筛选和查找。 9. **事件监听...
此外,JavaMail还提供了许多其他功能,如处理邮件的接收、读取、删除等操作,以及支持IMAP协议等。 在提供的压缩包文件"JavaMail"中,可能包含了示例代码或者库文件,你可以通过阅读和运行这些代码来更好地理解和...
### Java邮件发送与SMTP、POP3、IMAP、MIME协议详解 在现代通信中,电子邮件作为企业级应用和个人通信的重要组成部分,其高效性与便捷性不容忽视。JavaMail API,作为Java平台上的邮件处理标准库,为开发人员提供了...
这个压缩包"邮件发送javamail所需jar包.rar"包含了实现JavaMail功能所需的依赖库,它们是开发人员在构建邮件系统时必不可少的组件。 JavaMail API 提供了丰富的类和接口,允许开发者直接与SMTP(简单邮件传输协议)...
2. **接收邮件**:支持POP3和IMAP协议,能够接收来自不同邮件服务器的邮件,并对这些邮件进行操作,如读取、删除等。 3. **邮件处理**:包括解析邮件内容、管理附件等功能。 #### 三、JavaMail的核心类与接口 1. *...
通过JavaMail,开发者可以创建、读取、修改和删除邮件,包括附件、HTML内容和MIME多部分结构。 在发送邮件方面,JavaMail API提供了`javax.mail.Session`类,它是邮件会话的入口点,负责设置配置信息,如邮件服务器...
5. 接收邮件:通过Folder和Store类操作邮件,可以实现邮件的检索、读取和删除等操作。 四、系统实现 基于Javamail的邮件收发系统实现涉及前端界面设计、后端服务开发和数据库管理。前端负责用户交互,展示邮件列表...
JavaMail是一种开源的Java库,它允许开发人员在Java应用程序中发送和接收电子邮件。IMAP(Internet Message Access Protocol)是一种标准的邮件访问协议,用于从邮件服务器检索邮件。Exchange 2007是微软的企业级...
5. 发送邮件:使用EmailMessage的send方法将邮件发送出去。 接收邮件部分,主要涉及到查询和处理邮箱中的邮件: 1. 获取Folder对象:通过ExchangeService对象获取Inbox或Drafts等特定文件夹的引用。 2. 查询邮件:...
3. **发送邮件**:使用`Transport`类的`send()`方法将构造好的邮件发送出去。这会连接到SMTP服务器并完成邮件的传输。 4. **接收邮件**:通过`Store`类连接到邮件服务器,如POP3或IMAP服务器,然后打开`Folder`来...
除了基本的邮件发送功能,JavaMail还提供了许多其他高级特性,如文件附件、抄送、密送、邮件读取和删除等。你可以通过调整配置和使用不同的API方法来实现这些功能。 在实际开发中,可能还需要处理异常,比如网络...
3. **Transport对象**:负责实际的邮件发送,通过 `Transport.send(Message)` 方法将邮件发送到指定的邮件服务器。 4. **Folder对象**:用于管理和操作邮件箱,可以读取、写入和删除邮件。 5. **Store对象**:连接到...
- **SMTP 服务器**:邮件发送通常通过 Simple Mail Transfer Protocol (SMTP) 进行,需要提供 SMTP 服务器地址和端口号。 - **身份验证**:如果 SMTP 服务器需要身份验证,通常采用PLAIN、LOGIN 或者 XOAUTH2 等...
1. 邮件发送:用户可以通过系统编辑邮件内容,包括纯文本和HTML格式的邮件。JavaMail API 提供了创建Message对象的方法,允许设置邮件主题、正文、发件人和收件人信息。如果邮件包含附件,API还支持添加多个文件作为...