java邮件程序_用JavaMail写发送邮件程序

参加开发过各种各样的Web应用,经常会遇到Web应用需要嵌入邮件功能。例如,如果是EC应用的话,顾客下单后会收到下单确认邮件,而商品提供者会收到有新订单需要处理的邮件,这样商品提供者就不必定期的访问自己的网站或数据库也能够处理订单,而顾客也不必记下下单时填写的内容。或者还有,有新品上市时,通过邮件给希望收到最新信息的老顾客发送商品介绍和各种促销活动等。

一般来说,通过Pull型浏览器(能自动收集信息)和Push型邮件系统(信息提供者积极提供信息)的协同,可以给用户带来更好的用户体验,对网站经营者也可以提供非常有利的解决方案。

在本文中,就是要介绍能够简单实现这种邮件系统的Java类库--JavaMail。利用JavaMail,不用考虑SMTP这种底层的通信实现,只要设定相关参数就可实现发送邮件。

在这里,只是先用固定文本信息来尝试,当然你可以编辑必要的参数,从数据库获取数据等,来实现动态的发送邮件功能。

下面通过具体代码来了解。

1. 安装JavaMail类库

要利用JavaMail类库,除了JavaMail自身,还需要JAF(Java Activation Framework),Java6以后的版本不需要JAF。可以从下面的地址获取这些。

下载后解压,将lib下的类库添加到你的Classpath。

2. Java程序

MailTransfer.java

1 importjava.io.UnsupportedEncodingException;2 importjava.util.Properties;3

4 importjavax.mail.Message;5 importjavax.mail.MessagingException;6 importjavax.mail.Session;7 importjavax.mail.Transport;8 importjavax.mail.internet.InternetAddress;9 importjavax.mail.internet.MimeMessage;10

11

12 public classMailTransfer {13 public static voidmain(String[] args) {14 Properties objPrp=newProperties();15 objPrp.put("mail.smtp.host","smtp.xxxxx.ne.jp"); //SMTP Server

16 objPrp.put("mail.host","smtp.xxxxx.ne.jp"); //Host17 //Mail Session

18 Session session=Session.getDefaultInstance(objPrp,null);19 //Sending Message

20 MimeMessage objMsg=newMimeMessage(session);21 try{22 //To (还可以设定其他CC或BCC)

23 objMsg.setRecipients(Message.RecipientType.TO,"xxxxxx@hotmail.com");24 //From

25 InternetAddress objFrm=new InternetAddress("xxxxxx@gmail.com","E.Kou");26

27 objMsg.setFrom(objFrm);28 //标题

29 objMsg.setSubject("Mail Test","utf-8");30

31 //邮件内容

32 objMsg.setText("Hello","utf-8");33

34 //发送邮件

35 Transport.send(objMsg);36 } catch(UnsupportedEncodingException e) {37 e.printStackTrace();38 } catch(MessagingException e) {39 e.printStackTrace();40 }41 }42 }

这个例子是从gmail向hotmail发送一封名为Mail Test的邮件。

3. 需要注意的地方

①发送中文邮件时要注意编码

这里用的是utf-8

②mail.host和mail.smtp.host都要指定

因为Java会先识别mail.smtp.host,所以只指定mail.smtp.host也可以。但是Message-ID是利用mail.host生成的,所以如果不指定mail.host,可能会影响Message-ID的生成。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值