javaMai 为建立邮件和消息服务提供了框架,因而应用程序可以发送和接收邮件.JavaMail API 是一个用于阅读、编写和发送电子消息的可选包(标准扩展),可以用来建立基于标准的电子邮件客户机,它配置了各种因特网邮件协,包括SMTP 、POP 、IMAP和 MIME ,还包括相关的NNTP 、S/MIME 及其它协议。
通常开发JavaMail 程序通常需要mail.jar 和 activation.jar 两个架包。mail.jar包含mailapi.jar、pop3.jar 和 smtp.jar。mailapi.jar包含核心的API 类, pop3.jar 和 smtp.jar为各自的邮件协议包含实现方法. activation.jar处理 MIME (多用途因特网邮件扩展)类型。
核心JavaMail API 由七个类组成:Session 、Message 、Address 、Authenticator 、Transport 、Store 及 Folder ,它们都来自javax.mail 、即JavaMail API 顶级包。可以用这些类完成大量常见的电子邮件任务,包括发送消息、检索消息、删除消息、认证、回复消息、转发消息、管理附件、处理基于HTML文件格式的消息以及搜索或过滤邮件列表。
这里只具体说明一下发送邮件的JavaMail类:
1.Session
这个Session类代表JavaMail 中的一个邮件session. 每一个基于 JavaMail的应用程序至少有一个session但是可以有任意多的session。
在这个例子中, Session对象需要知道用来处理邮件的SMTP 服务器。JavaMail需要Properties来创建一个session对象
Session sendMailSession;
Properties props = new Properties ();
props.put("mail.smtp.host", "smtp.sina.com.cn");//可以换上你的smtp主机名。
sendMailSession = Session.getInstance(props, null);
2.Transport
Transport 是用来发送信息的.
用法:Transport transport;
transport = sendMailSession.getTransport("smtp");
用JavaMail Session对象的getTransport 方法来初始化Transport。传过去的字符串申明了对象所要使用的协议,如"smtp"。这是因为JavaMail以境内置了很多协议的实现方法。
注意: JavaMail并不是绝对支持每一个协议,目前支持IMAP、 SMTP和 POP3。
3.Message
Message对象将存储我们实际发送的电子邮件信息,Message对象被作为一个MimeMessage对象来创建并且需要知道应当选择哪一个JavaMail session。
使用方法:Message newMessage = new MimeMessage(sendMailSession);
4.MimeMessage
实现Message接口,以显示Mime风格的消息
5.InternetAddress
存储电子邮件中关于“from”、“to”域的信息
用JavaMail发送电子邮件的过程比较简单,大致分为以下5个步骤:
1.创建Properties 对象,设置邮件服务器属性:mail.smtp.host ,即指定你的SMTP服务器。
2.建立一个邮件会话
3.创建你的邮件信息对象,该对象包含了你的邮件的全部内容,包括发送人,接受人,标题,正文,附件等内容
4.完成发送前的服务器验证
5.发送邮件
以下是代码,在这里发送人和接收人都是用的新浪邮箱,没有加入发送附件的功能
package test;
import java.io.*;
import java.text.*;
import java.util.*;
port javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
public class SimpleSender {
public static void main(String args[]) {
try {
String smtpServer = "smtp.sina.com.cn";
String to = "test1@sina.com.cn";
String from = "test2@sina.com.cn";
String subject = "hello";
String body = "";
send(smtpServer, to, from, subject, body);
} catch (Exception ex) {
System.out.println("Usage: java test.SimpleSender"
+ " smtpServer toAddress fromAddress subjectText bodyText");
}
}
public static void send(String smtpServer, String to, String from,
String subject, String body) {
try {
Properties props = System.getProperties();
props.put("mail.smtp.host", smtpServer);
props.put("mail.smtp.auth","true");
Authenticator sa = new SmtpAuth(from, "");
Session session = Session.getDefaultInstance(props,sa);
InternetAddress fromadress = new InternetAddress(from);
javax.mail.internet.InternetAddress toadress= new javax.mail.internet.InternetAddress (to);
javax.mail.internet.MimeMessage mymessage = new javax.mail.internet.MimeMessage (session);
mymessage.setFrom(fromadress);
mymessage.setRecipient(Message.RecipientType.TO ,toadress);
mymessage.setSentDate(new java.util.Date());
mymessage.addHeader("header","test") ;
mymessage.setSubject(subject) ;
mymessage.setText("hello") ;
Transport tt=session.getTransport("smtp");
tt.send(mymessage);
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
}
分享到:
相关推荐
如果需要发送带附件的邮件,可以使用`Multipart`类,将文本和附件一起添加到邮件中。`MimeBodyPart`类用于创建包含数据的邮件部分,然后将其添加到`Multipart`对象中。 10. **异常处理**: 在实际使用中,应确保...
`activation.jar`包含了JAF的实现,它提供了对MIME类型的支持,使Java应用程序能够识别和操作电子邮件中的各种数据格式。`mail.jar`则是JavaMail API的核心库,提供了发送和接收电子邮件的接口及实现。 在Java中...
在Java编程环境中,实现邮件发送功能是一项常见的任务,特别是在企业级应用中,如Spring框架2.5.6版本。为了在JDK1.6的基础上利用Spring...通过理解这些概念和步骤,开发者可以轻松地实现在Java应用中发送邮件的功能。
总的来说,Java Mail是一个强大的工具,它使得在Java应用中集成邮件功能变得简单。通过理解和使用提供的jar文件和示例代码,开发者能够轻松实现邮件服务的功能,无论是发送文本邮件还是带有附件的复杂邮件。
本文将深入分析一个Java程序示例——`Mail.java`,它通过Socket编程实现邮件发送功能,并支持添加附件。 #### 二、类设计与功能概述 `Mail.java` 类的设计遵循了面向对象的原则,提供了发送邮件以及添加附件的方法...
在Java编程语言中,发送电子邮件是一项常见的任务,尤其在自动化通知、系统日志报告或用户交互等场景下。为了实现这个功能,开发者通常需要引入特定的库或包。标题提到的"java发送邮件必备的包",指的是JavaMail API...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
Java发送邮件是开发过程中常见的需求,特别是在自动化任务、通知服务或者数据报告中。要实现这一功能,你需要一些特定的库,这些库以JAR...有了这些库,你可以轻松地在Java应用程序中实现复杂且可靠的邮件发送功能。
在发送邮件时,JAF可以解析和创建复杂的MIME结构,使得Java程序能够处理各种类型的附件,如文本、图片、音频、视频等。 为了使用这两个库,你需要在项目中添加对应的依赖。如果是传统的Java项目,你可以将这两个....
JavaMail 是一个开源的Java库,它允许开发者在Java应用程序中发送电子邮件。在Java中处理邮件功能时,通常需要依赖一些特定的库,其中最常用的就是`mail.jar`和`activation.jar`。这两个JAR文件提供了JavaMail API,...
2. **mail-1.6.0.jar**:这是JavaMail API的一个实现,用于在Java应用程序中发送和接收电子邮件。JavaMail API提供了一系列接口和类,可以用来连接邮件服务器,创建邮件,包括文本、HTML、附件等不同格式的内容,...
Java的javax.mail API是用于在Java应用程序中发送和接收电子邮件的标准库。这个API提供了一种与邮件服务器交互的抽象方式,使得开发者无需关心具体的邮件协议(如SMTP、POP3或IMAP)。在Java中,使用javax.mail库...
这样,当Web应用被容器(如Tomcat、Jetty等)加载时,容器会自动扫描`lib`目录下的所有jar包,并将它们加入到应用的类路径中,从而使得Servlet可以正确地使用JavaMail API。 为了确保邮件发送功能的正常工作,还...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...
在发送邮件时,JAF可以帮助识别和处理邮件中的不同内容类型,比如文本、图片、音频或视频等复杂附件。有了JAF,开发者可以更加灵活地处理不同类型的邮件内容。 在提供的压缩包文件中,有两个关键的jar文件:mail....
`SystemTray`类同样是在JDK 6中新增的,它允许Java应用在系统托盘(也称为系统通知区域)中创建图标,以此提供持续的通知或快捷访问应用功能的能力。通过`SystemTray.getSystemTray()`获取`SystemTray`实例,再结合`...
这不仅可以帮助您更好地理解Java在网络编程中的应用,而且还可以作为构建更复杂邮件系统的起点。随着项目的深入,您还可以考虑增加更多的功能,比如邮件过滤、垃圾邮件检测等高级功能。此外,为了提高安全性,您还...
下面例子演示怎样用javamail来发送邮件,在测试之前,我们要下载javamail的类包,并添加入你的工程中,如果你的IDE自带javamail的类包,那就很简单,直接import 就行,mark使用的是MyEclipse 7.5,自带,所以可以...