来源:互联网 发布:mp4合并软件绿色版 编辑:程序博客网 时间:2024/05/01 12:16

Javamail学习

在我们注册别人网站的时候往往需要填写激活邮箱,一直对这个感到很好奇,网上搜集资料总是不全。那么下面是实现这一功能的开始,不对的地方希望能帮我改正。

需要用到的两个包:

Activation.jar

Mail.jar

首先说下RFC822文档规定发送邮件的格式:

   ehlo  计算机的名字

    auth login 登录命令BASE64加密的用户名和密码

    mail from:发件者的邮件

     Mail from:<csdn@qq.com>

    rcpt to: 接受者邮件

     rcpt to:<csdn@qq.com>

    data

     

    from:发件者的邮件

    to:接受者邮件

    subject:主题

      //空行

正文

.

Quit   结束

MIME协议发送邮件,RFC822文档的升级完善。现在很多WEB应用在开发时都需要集成邮件发送功能,例如: 

给新注册的用户自动发送一封包含其注册信息的欢迎E-Mail

给过生日的注册会员自动发送一封表示祝贺的E-Mail 

将网站的最新活动信息通过E-Mail发送给所有的注册会员。

等等 …...

这些功能的实现都需要软件开发人员在开发WEB应用中编写相应的邮件处理程序。

今天要实现的效果演示:

1.可以编写程序代码生成一封带内嵌图片和文字的邮件

代码如下:

Code:
  1. public class MimeImageMail {   
  2.   
  3.     public static void main(String[] args)throws Exception {   
  4.         //1、创建邮件   
  5.         MimeMessage message = new MimeMessage(Session.getInstance(new Properties()));   
  6.         //2、设置邮件属性   
  7.         message.setFrom(new InternetAddress("aa@pan.com"));   
  8.         message.setRecipient(Message.RecipientType.TO, new InternetAddress("bb@redarmy.com"));   
  9.         message.setSubject("主题");   
  10.         //3、创建正文   
  11.         MimeBodyPart text = new MimeBodyPart();   
  12.         text.setContent("xxxxxxxx你好中英文<br/><br/><img src='cid:xx.jpg'>xxxxxxxx""text/html;charset=utf-8");   
  13.            
  14.         //4、创建一个图片   
  15.         MimeBodyPart image = new MimeBodyPart();   
  16.         image.setDataHandler(new DataHandler(new FileDataSource("src//f.jpg")));   
  17.         image.setContentID("xx.jpg");   
  18.            
  19.            
  20.         //创建描述关系   
  21.         MimeMultipart mm = new MimeMultipart();   
  22.         mm.addBodyPart(text);   
  23.         mm.addBodyPart(image);   
  24.            
  25.         //设置关系   
  26.         mm.setSubType("related");   
  27.            
  28.            
  29.         message.setContent(mm);   
  30.            
  31.         message.saveChanges();   
  32.            
  33.         message.writeTo(new FileOutputStream("D://2.eml"));   
  34.            
  35.            
  36.     }   
  37. }  

 

1.可以编写程序生成一封带有两个附件又带图片的复杂邮件,并且做了附件名称乱码问题的处理。

代码如下:

Code:
  1. public class EmailAndAttch {   
  2.     public static void main(String[] args) throws Exception{   
  3. //创建邮件   
  4.         MimeMessage message=new MimeMessage(Session.getInstance(new Properties()));   
  5.  //2、设置邮件属性   
  6.         message.setFrom(new InternetAddress("abcd@qq.com"));   
  7.         message.setRecipient(Message.RecipientType.TO,new InternetAddress("abcd@qq.com"));   
  8.         message.setSubject("一个图片和两个附件");   
  9.         MimeBodyPart text=new MimeBodyPart();   
  10.         text.setContent("xxxxxxx这是中文的<br/><img src=‘cid:xx.jpg’><br/>yyyyyy","text/html;charset=utf8");   
  11.         //设置图片   
  12.         MimeBodyPart image=new MimeBodyPart();   
  13.         DataHandler  dh=new DataHandler(new FileDataSource("src//f.jpg"));   
  14.         image.setDataHandler(dh);   
  15.         image.setContentID("xx.jpg");   
  16.         //设置附件   
  17.         MimeBodyPart  attch=new MimeBodyPart();   
  18.         DataHandler dh1=new DataHandler(new FileDataSource("src//大笑.mp3"));   
  19.         //解决附件名乱码   
  20.         attch.setDataHandler(dh1);   
  21.         String filename=dh1.getName();   
  22.         attch.setFileName(MimeUtility.encodeText(filename));   
  23.            
  24.         MimeBodyPart attch1=new MimeBodyPart();   
  25.         DataHandler dh2=new DataHandler(new FileDataSource("src//f.jpg"));   
  26.         String filename1=dh2.getName();   
  27.         attch1.setFileName(MimeUtility.encodeText(filename1));   
  28.         attch1.setDataHandler(dh2);   
  29.         //设置描述关系   
  30.         MimeMultipart mm=new MimeMultipart();   
  31.         mm.addBodyPart(text);   
  32.         mm.addBodyPart(image);   
  33.         mm.addBodyPart(attch1);   
  34.         mm.setSubType("related");   
  35.         //图片与正文的Bodypart   
  36.         MimeBodyPart part=new MimeBodyPart();   
  37.         part.setContent(mm);   
  38.         //附件与以上的bodypart关系   
  39.         MimeMultipart m=new MimeMultipart();   
  40.         m.addBodyPart(part);   
  41.         m.addBodyPart(attch);   
  42.         m.setSubType("mixed");   
  43.         ////把MIME消息设置到message中   
  44.        message.setContent(m);   
  45.        message.saveChanges();   
  46.        message.writeTo(new FileOutputStream("d://55.eml"));    
  47.     }   
  48.   
  49. }  

只是个简单的总结,怎么记住汗自己想去吧。这只是发送邮件的基础,想知道怎么向互联网发邮件期待吗,正在学习中汗。

原创粉丝点击