javamail使用完全手册Word文档格式.docx
- 文档编号:16878243
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:13
- 大小:21.38KB
javamail使用完全手册Word文档格式.docx
《javamail使用完全手册Word文档格式.docx》由会员分享,可在线阅读,更多相关《javamail使用完全手册Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
To:
BR>
INPUT
name="
to"
size="
25"
/TD>
From:
from"
/TR>
colspan="
2"
Subject:
subject"
50"
P>
Message:
TEXTAREA
text"
rows=25
cols=85>
/TEXTAREA>
/P>
/TABLE>
type="
submit"
cb_submit"
value="
Send
"
reset"
cb_reset"
Clear
/FORM>
/BODY>
/HTML>
5,今天你“发“了没有
%@
page
import="
javax.mail.*,
javax.mail.internet.*,
javax.activation.*,java.util.*"
%>
html>
head>
TITLE>
JSP
meets
JavaMail,
what
a
sweet
combo.<
/TITLE>
/HEAD>
%
try{
Properties
props
=
new
Properties();
Session
sendMailSession;
Store
store;
Transport
transport;
sendMailSession
Session.getInstance(props,
null);
props.put("
mail.smtp.host"
);
//用你的smtp服务器代替上面的
Message
newMessage
MimeMessage(sendMailSession);
newMessage.setFrom(new
InternetAddress(request.getParameter("
)));
newMessage.setRecipient(Message.RecipientType.TO,
newMessage.setSubject(request.getParameter("
));
newMessage.setSentDate(new
Date());
newMessage.setText(request.getParameter("
transport
sendMailSession.getTransport("
smtp"
transport.send(newMessage);
Your
has
been
sent.<
}
catch(MessagingException
m)
{
out.println(m.toString());
解释解释:
属性对象
JavaMail需要创建一个格式为"
的文件用来发送信息。
();
对话对象
所有的基于JavaMail的程序都至少需要一个或全部的对话目标。
传输
邮件的传输只有送出或受到两种状态。
JavaMail将这两种不同状态描述为传输和储存。
传输将送出邮件,而储存将收取邮件。
使用JavaMail能为我们节约大量的时间。
JavaMail能代替所有的SMTP的工作。
注意:
JavaMail并不能完全的支持所有的邮件发送收取工作。
它目前仅支持IMAP、SMTP和POP3,除此以外你只有等待新的JavaMail版本或自己开发协议。
信息对象
信息对象将把你所发送的邮件真实的反映出来。
这就是我们所需要的全部四个对象。
下一步将是如何将对象加入到JSP中。
3.JavaMail的常用类介绍
事先说明:
没用过JavaMail的人可能看不懂这些介绍,不过不要紧,后面的文章有具体的实例,到时也可倒回来查看这些类的用法.
(1)
javax.mail.Properties类
JavaMail需要Properties来创建一个session对象。
它将寻找字符串"
,属性值就是发送邮件的主机.
用法:
Properties
props.put("
//可以换上你的smtp主机名。
(2)
javax.mail.Session类
这个Session类代表JavaMail
中的一个邮件session.
每一个基于
JavaMail的应用程序至少有一个session但是可以有任意多的session。
在这个例子中,
Session对象需要知道用来处理邮件的SMTP
服务器。
(3)
javax.mail.Transport类
邮件是既可以被发送也可以被受到。
JavaMail使用了两个不同的类来完成这两个功能:
和Store.
是用来发送信息的,而Store用来收信。
对于这的教程我们只需要用到Transport对象。
用法:
用JavaMail
Session对象的getTransport
方法来初始化Transport。
传过去的字符串申明了对象所要使用的协议,如"
。
这将为我们省了很多时间。
因为JavaMail以境内置了很多协议的实现方法。
注意:
JavaMail并不是绝对支持每一个协议,目前支持IMAP、
SMTP和
POP3.
(4)
javax.mail.MimeMessage类
Message对象将存储我们实际发送的电子邮件信息,Message对象被作为一个MimeMessage对象来创建并且需要知道应当选择哪一个JavaMail
session。
用法:
(5)
javax.mail.InternetAddress类
一旦您创建了
和
Message,并将内容填入消息后,就可以用Address确定信件地址了。
一样,Address
也是个抽象类。
您用的是Javax.mail.internet.InternetAddress
类.
InternetAddress
from=new
InternetAddress("
xxf@"
(6)
javax.mail.Store类
Store类实现特定邮件协议上的读、写、监视、查找等操作。
通过Javax.mail.Store类可以访问Javax.mail.Folder类。
store=s.getSorte("
pop3"
//s为一个邮件会话
store.connect(popserver,username,password);
//通过你提供的pop地址,用户名和密码登录你的邮箱
(7)
javax.mail.Folder类
Folder类用于分级组织邮件,并提供照Javax.mail.Message格式访问email的能力。
Folder
folder=store.getFolder("
INBOX"
folder.open(Folder.READ_ONLY);
(8)
javax.mail.Internet.MimeMultpart
一般保存电子邮件内容的容器是Multipart抽象类,它定义了增加和删除及获得电子邮件不同部分内容的方法.由于Multipart是抽象类,我们必须为它使用一个具体的子类,JavaMail
API提供javax.mail.Internet.MimeMultpart类来使用MimeMessage对象.
MimeMultipart
multipart=new
MimeMultipart();
注:
我们使用MimeMultipart对象的一个方法是addBodyPart(),它在我们的电子邮件内容里添加BodyPart(BodyPart类在下面紧接着要介绍)对象.消息可以有很多部分,一个BodyPart可以代表一个部分.
(9)
javax.mail.Internet.MimeBodyPart类
MimeBodyPart是BodyPart具体用于mimeMessage的一个子类.
MimeBodyPart对象代表一个MimeMessage对象内容的一部分.每个MimeBodyPart被认为有两部分:
⊙一个MIME类型
⊙匹配这个类型的内容
MimeBodyPart
mdp=new
MimeBodyPart();
String
text="
Hello
JavaMail!
;
mdp.setContent(text,"
text/plain"
//定义MIME类型为text/plain,并设置MimeBodyPart的内容.
(10)
javax.activation.DataHandler类(包含在JAF中)
JavaMail
API不限制信息只为文本,任何形式的信息都可能作茧自缚MimeMessage的一部分.除了文本信息,作为文件附件包含在电子邮件信息的一部分是很普遍的.JavaMail
API通过使用DataHandler对象,提供一个允许我们包含非文本BodyPart对象的简便方法.
DataHandler
dh=new
DataHandler(text,type);
mdp.setDatahandler(dh);
//mdp是一个MimeBodyPart对象
(11)
javax.activation.FileDataSource类(包含在JAF中)
一个FileDataSource对象可以表示本地文件和服务器可以直接访问的资源.一个本地文件可以通过创建一个新的MimeBodyPart对象附在一个mimeMessage对象上.
mm=new
FileDataSource
fds=new
FileDataSource("
c:
/exam.txt"
mdp.setDataHandler(new
DataHandler(fds));
//设置数据源
mm.addBodyPart(mdp);
//为当前消息MimeMultipart对象增加MimeBodyPart
(12)
javax.activation.URLDataSource类(包含在JAF中)
远程资源,URL不会指向它们,由一个URLDataSource对象表示.一个远程资源可以通过创建一个新mimeBodyPart对象附在一个mimeMessage对象上(同FileDataSource差不多).
与FileDataSource唯一不同的是数据源的设置:
URLDataSource
uds=new
URLDataSource("
JavaMail通过sina的smtp验证
import
javax.mail.*;
javax.mail.internet.*;
java.util.*;
public
class
sendMail
static
void
main(String
args[])
throws
Exception
host
from
javamail@"
to
username
javamail"
password
password"
//
Get
system
properties
System.getProperties();
很多例子中是这样的,其实下面这句更好,可以用在applet中
Setup
server
host);
mail.smtp.auth"
true"
//这样才能通过验证
session
session
Session.getDefaultInstance(props);
watch
the
commands
go
by
session.setDebug(true);
Define
message
MimeMessage
message
MimeMessage(session);
message.setFrom(new
InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,
InternetAddress(to));
message.setSubject("
JavaMail"
message.setText("
Welcome
message.saveChanges();
session.getTransport("
transport.connect(host,
username,
password);
transport.sendMessage(message,
message.getAllRecipients());
transport.close();
用javamail发送邮件
用javamail发送邮件
aistill(原作)
关键字
javamail,smtp,附件,HTML邮件,smtp认证
/*
在java版经常看到有人问如何用javamail发送邮件?
如何接收邮件?
如何访问多个文件夹等。
问题零散,而历史的回复早已经淹没在问题的海洋之中。
本人之前所做过一个java项目,其中包含有WebMail功能,当初为用java实现而对javamail摸索了一段时间,总算有点收获。
看到论坛中的经常有此方面的问题,因此把我的一些经验帖出来,希望对大家有些帮助。
此篇仅介绍用javamail实现发送邮件功能,其中涉及smtp认证,邮件附件发送,及HTML内容邮件等。
其它有关多邮箱的实现,接收POP3邮件及IMAP等内容,将在后续文章中介绍。
如下程序需要:
javamail,JAF包,j2ee.jar包含了上述两个包,建议大家安装J2SDKEE或直接拷贝j2ee.jar,将其添加到jbuilder的library中,或系统ClassPath中
*/
package
com.me.util.mail;
/**
*
@author
Zhangkun
aistill@
@version
1.0
java.util.Date;
javax.activation.*;
java.io.*;
com.me.util.*;
sendMail
private
mimeMsg;
//MIME邮件对象
session;
//邮件会话对象
props;
//系统属性
boolean
needAuth
false;
//smtp是否需要认证
//smtp认证用户名和密码
Multipart
mp;
//Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象
sendMail()
setSmtpHost(getConfig.mailHost);
//如果没有指定邮件服务器,就从getConfig类中获取
createMimeMessage();
sendMail(String
smtp){
setSmtpHost(smtp);
@param
hostName
String
setSmtpHost(String
hostName)
System.out.println("
设置系统属性:
mail.smtp.host
+hostName);
if(props
==
null)props
//获得系统属性对象
hostName);
//设置SMTP主机
@return
boolean
createMimeMessage()
准备获取邮件会话对象!
Sess
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javamail 使用 完全 手册