} } }

    用JavaMail写发送邮件法度

    添加时间:2013-5-31 点击量:

    参加开辟过各类百般的Web应用,经常会碰到Web应用须要嵌入邮件功能。例如,若是是EC应用的话,顾客下单后会收到下单确认邮件,而商品供给者会收到有新订单须要处理惩罚的邮件,如许商品供给者就不一按期的接见本身的网站或数据库也可以或许处理惩罚订单,而顾客也不必记下下单时填写的内容。或者还有,有新品上市时,经由过程邮件给收到新信息的老顾客发送商品介绍和各类促销活动等。


    一般来说,经由过程Pull型浏览器(能主动收集信息)和Push型邮件体系(信息供给者积极供给信息)的协同,可以给用户带来更好的用户体验,对网站经营者也可以供给很是有利的解决规划。


    在本文中,就是要介绍可以或许简单实现这种邮件体系的Java类库--JavaMail。哄骗JavaMail,不消推敲SMTP这种底层的通信实现,只要设定相干参数就可实现发送邮件。


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


    下面经由过程具体代码来懂得。


    1. 安装JavaMail类库


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


    http://www.oracle.com/technetwork/java/javamail/index-138643.html


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


    2. Java法度


    MailTransfer.java



     1 import java.io.UnsupportedEncodingException;
    
    2 import java.util.Properties;
    3
    4 import javax.mail.Message;
    5 import javax.mail.MessagingException;
    6 import javax.mail.Session;
    7 import javax.mail.Transport;
    8 import javax.mail.internet.InternetAddress;
    9 import javax.mail.internet.MimeMessage;
    10
    11
    12 public class MailTransfer {
    13 public static void main(String[] args) {
    14 Properties objPrp=new Properties();
    15 objPrp.put(mail.smtp.host,smtp.xxxxx.ne.jp); // SMTP Server
    16 objPrp.put(mail.host,smtp.xxxxx.ne.jp); // Host
    17 // Mail Session
    18 Session session=Session.getDefaultInstance(objPrp,null);
    19 // Sending Message
    20 MimeMessage objMsg=new MimeMessage(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的生成。


    我俩之间有着强烈的吸引力。短短几个小时后,我俩已经明白:我们的心是一个整体的两半,我俩的心灵是孪生兄妹,是知己。她让我感到更有活力,更完美,更幸福。即使她不在我身边,我依然还是感到幸福,因为她总是以这样或者那样的方式出现在我心头。——恩里克·巴里奥斯《爱的文明》
    分享到: