javaMail组件应用---------1

 

<%@ page import="java.util.*,javax.mail.*"%>

<%@ page import="javax.mail.internet.*"%>

 

try{

//取得对象值

String tto=request.getParameter("to");

String ttitle=request.getParameter("title");

String tcontent=request.getParameter("content");

 

/* Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。一个属性列表可包含另一个属性列表作为它的默认值;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。

 

Properties 类继承Hashtable并且调用 Hashtable 的方法 put

 

Hashtable类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法

put(K key, V value) 将指定 key 映射到此哈希表中的指定 value

*/

Properties props=new Properties();

props.put("mail.smtp.host","smtp.163.com");

props.put("mail.smtp.auth","true");

 

/*Session类定义了一个基本的邮件会话。通过该会话可让别的工作顺利执行。Session对象利用java.util.Properties对象获取诸如邮件服务器、用户名、密码等信息,以及其他可在整个应用程序中共享的信息。

Session类的构造器是私有的。您可以获得一个可被getDefaultInstance()方法共享的单一的默认会话:

*/

Session s=Session.getInstance(props);

s.setDebug(true);

 

// MimeMessage是一种理解MIME类型和报头(在不同的RFC文档中均有定义)的消息

MimeMessage message=new MimeMessage(s);

/*

一旦创建了会话和消息,并为消息填充了内容,就需要用Address类为您的信件标上地址了。同Message类一样,Address类也是一种抽象类。您可以使用javax.mail.internet.InternetAddress类。要创建只带有电子邮件地址的地址,可以把电子邮件地址传递给Address类的构造器:

*/

//给消息对象设置发件人/收件人/主题/发信时间

InternetAddress from=new InternetAddress("sungxmail@163.com");

message.setFrom(from);

InternetAddress to=new InternetAddress(tto);

message.setRecipient(Message.RecipientType.TO,to);

message.setSubject(ttitle);

message.setSentDate(new Date());

 

/*

转发消息涉及的内容要稍微多一点,没有一个专门用于转发消息的方法,您可以通过处理组成消息的各个部分来创建要转发的消息。

    一条邮件消息可由多个部分组成,每一部分是一个BodyPart(报文部分),或更特殊一点,在操作MIME消息时则是MimeBodyPart。不同的报文部分组合到一个称为Multipart的容器中,或者又更特殊一点,是一个MimeMultipart容器。要转发消息,您要创建一个用于消息文本的部分,和用于要转发的消息的第二个部分,并将这两个部分组合成一个multipart(多个部分)。然后您可以把这个multipart添加到一个合适的注明地址的消息中并发送它。

    这就是转发消息的本质。要把一条消息的内容复制给另一条消息,只需通过它的DataHandler类复制即可,它是出自于JavaBeans Activation Framework的一个类。

*/

//给消息对象设置内容

BodyPart mdp=new MimeBodyPart();//新建一个存放信件内容的BodyPart对象

mdp.setContent(tcontent,"text/html;charset=gb2312");//BodyPart对象设置内容和格式/编码方式

Multipart mm=new MimeMultipart();//新建一个MimeMultipart对象用来存放BodyPart

//(事实上可以存放多个)

mm.addBodyPart(mdp);//BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)

message.setContent(mm);//mm作为消息对象的内容

 

message.saveChanges();

/*

发送消息的最后一步操作是使用Transport类。该类使用特定于协议(通常是SMTP)的语言来发送消息。它是一个抽象类,其操作与Session类有些相似。您可以通过只调用静态的send()方法来使用该类的默认版本:

    Transport.send(message);

*/

Transport transport=s.getTransport("smtp");

transport.connect("smtp.163.com","sungxmail","sungxd");

transport.sendMessage(message,message.getAllRecipients());

transport.close();

}catch(MessagingException e){

out.println(e.toString());

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值