java mailWord文档下载推荐.docx
《java mailWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《java mailWord文档下载推荐.docx(6页珍藏版)》请在冰豆网上搜索。
![java mailWord文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/16/201b7bd9-84ee-40a0-93e9-4c65b10e6eff/201b7bd9-84ee-40a0-93e9-4c65b10e6eff1.gif)
StringfileName
=emailData.getFileName();
if(recipients!
=null&
&
recipients.length>
0){
Propertiesprops=newProperties();
//设置邮件服务器地址,连接超时时限等信息
props.put("
mail.smtp.host"
"
10.30.1.233"
);
//10.30.1.233邮件服务器
mail.smtp.connectiontimeout"
10000"
//
props.put("
mail.smtp.timeout"
//创建缺省的session对象
Sessionsession=Session.getDefaultInstance(props,null);
//创建message对象
Messagemsg=newMimeMessage(session);
//设置发件人和收件人
InternetAddressaddressFrom=newInternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress[]addressTo=newInternetAddress[recipients.length];
for(inti=0;
i<
recipients.length;
i++){
addressTo[i]=newInternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.TO,addressTo);
//设置邮件标题,中文编码
subject=MimeUtility.encodeText(newString(subject.getBytes(),"
GB2312"
),"
B"
msg.setSubject(subject);
//设置邮件内容,区分文本格式和HTML格式
if(contentType==null||contentType.equals("
text"
)){
msg.setText(content);
}elseif(contentType.equals("
html"
//给消息对象设置内容
BodyPartbodyPart1=newMimeBodyPart();
//新建一个存放信件内容的BodyPart对象
mdp.setContent(content,"
text/html;
charset=gb2312"
//给BodyPart对象设置内容和格式/编码方式
Multipartmmp=newMimeMultipart();
//新建一个MimeMultipart对象用来存放BodyPart对象(事实上可以存放多个)
//设置邮件附件
BodyPartbodyPart2=newMimeBodyPart();
FileDataSourcefileDataSource=newFileDataSource(fileName);
bodyPart2.setDataHandler(newDataHandler(fileDataSource));
bodyPart2.setFileName("
=?
GB2312?
B?
"
+enc.encode(fileName.getBytes())+"
?
="
Multipartmultipart=newMimeMultipart();
multipart.addBodyPart(bodyPart1);
multipart.addBodyPart(bodyPart2);
mmp.addBodyPart(mdp);
//将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)
msg.setContent(mmp);
//把mm作为消息对象的内容
//设置邮件发送时间
msg.setSentDate(newjava.util.Date());
//调用抽象类的静态方法send()发送邮件
Transport.send(msg);
3、发送带附件的邮件稍微复杂一些,跟发送普通邮件的区别主要如下:
//设置邮件内容
bodyPart1.setDataHandler(newDataHandler(newMailDataSource(content,"
text/html"
)));
//需要对附件文件名称进行转码,不然会出现乱码
//将Multipart加入到信件
newMessage.setContent(multipart);
4、以下是转载的关于javamail的介绍
Session
--------------------------------------------------------------------
Session
定义了一个基本的邮件会话,任何工作都是基于这个Session的。
对象需要一个
java.util.Properties
对象来得到类似
邮件服务器,用户名,密码这样的信息。
的构造函数是私有的,你可以通过
getDefaultInstance()
方法来取得一个单一的可以被共享的默认session
如:
Properties
props
=
new
Properties();
//
填写一些信息
session
Session.getDefaultInstance(props,null);
或者,你可以使用
getInstance()
方法来创建一个唯一的
session如:
Session.getInstance(props,null);
在这两种方法中
其中的
null
参数是一个
Authenticator
对象,在这里没有被使用的,所以就是null
在大多数案例中,使用一个共享session
已经做够了。
Message
----------------------------------------------------------------
一旦你创建了Session对象,那么下面要做的就是创建
message
来发送。
Message
是一个抽象类,在大部分应用中你可以使用它的子类
javax.mail.internet.MimeMessage
。
MimeMessage
是一个理解在不同RFCs中定义的MIME类型以及headers的e-mail
message&
nbsp;
headers
必须使用
US-ASCII
字符集。
可以用如下的方法创建一个
MimeMessage(session);
我们注意到,这里需要用session对象作为构造函数的参数。
当然,还有其它的构造函数,比如从用RFC822格式化过的输入流来创建message。
一旦你得到了
你就可以来设置它的各个部分(parts)。
设置内容(content)的基本的机制是使用setContent()
方法。
message.setContent("
Email
Content.
"
text/plain"
如果,你能够明确你的使用MimeMessage来创建message
并且只是使用普通的文本(plain
text)
那么你也可以使用
setText()
方法,setTest()方法只需要设置具体的内容,它默认的MIME类型是
text/plain
message.setText("
对于普通文本类型的邮件,有一种机制是首选(
))的设置内容的方法。
如果要创建其它类型的message
,比如 HTML类型的message
那么还是需要使用前者 ( message.setContent("
)
设置主题(subject
),使用setSubject()
方法
message.setSubject("
Subject
Address
当你已经创建Session
以及
Message,并且已经为message
填充了内容,那么接下来要做的就是给你的邮件添加一个地址(Address)。
就像Message一样,Address也是一个抽象类,我们可以使用它的一个子类javax.mail.internet.InternetAddress 。
创建一个地址非常简单
address
InternetAddress("
suixin@"
如果,你希望在出现邮件地址的地方出现一个名称,那么你只需要再多传递一个参数。
Steve"
你需要为
的from以及
to
字段创建address对象。
为了识别发送者,你需要使用setFrom()
和
setReplyTo()
messge.setFrom(address);
如果你的message
需要显示多个
from
地址,可以使用
addFrom()
address[]
{....};
message.addFrom(address);
为了辨识message
的收件人,你需要使用
setRecipient()
这个方法除了address参数之外,还需要一个Message.RecipientType
message.addRecipient(type,address);
Message.RecipientType有几个预先定义好的类型
Message.RecipientType.TO 收件人
Message.RecipientType.CC 抄送
Message.RecipientType.BCC
暗送
如果你的一封邮件,需要发送给你的老师,并还要给你的几个同学,那么你可以这样
toAddress
teacher@"
Address[]
ccAddress
{new
schoolmate1@"
),new
schoolmate2@"
)};
message.addRecipient(Message.RecipientType.To,
toAddress);
message.addRecipient(Message.RecipientType.CC,
ccAddress);
JavaMail
没有提供电子邮件地址有效性的检测。
这些超越了JavaMail
API的范围。
Authenticator
通过Authenticator设置用户名、密码,来访问受保护的资源,这里的资源一般指的是邮件服务器。
Authenticator也是一个抽象类,你需要自己编写子类已备应用。
你需要实现getPasswordAuthentication()方法,并返回一个PasswordAuthentication实例。
你必须在
session被创建时,
注册你的
Authenticator。
这样,当需要进行认证是,你的Authenticator就可以被得到。
//设置属性
auth
YourAuthenticator();
Session.getDefaultInstance(props,
auth);
Transport
发送消息最后的一步就是使用Transport类,你可以通过两种方法来进行发送。
Transport
是一个抽象类,你可以调用它静态的send()
方法来发送
Transport.send(message);
或者,你可以为你使用的协议从session中取得一个指定的实例,
transport
session.getTransport("
smtp"
transport.sendMessage(message,
message.getAllRecipients());
transport.close();
Store
and
Folder
这两个类重要用于取得信息。
在创建了Session之后,需要连接到一个
,你需要告诉Store
你使用的是什么协议。
store
session.getStore("
imap"
pop3"
store.connect(host,
username,
password);
在连接到一个
后,你可以得到一个
Folder,当然,这个Floder必须是打开的。
Folder
folder
store.getFolder("
INBOX"
folder.open(Folder.READ_ONLY);
message[]
folder.getMessages();
如果使用POP3那么,INDEX是唯一可用的文件夹。
如果使用的是IMAP,你就可以使用其它的文件夹。