MIME协议发送邮件

RFC822文档规定发送邮件的格式:

 ehlo  主机名

 auth login 登录命令

mail from:发件者的邮件

 rcpt to: 接受者邮件

data

from:发件者的邮件

 to:接受者邮件

 subject:主题

//空行

正文

   

相关代码:

 

简单邮件的发送:

//创建邮件属性条件

 Properties props = new Properties();

 //创建session

Session session = Session.getInstance(props);

 //创建邮件

MimeMessage message = new MimeMessage(session);

//设置邮件的发件人地址 相当于from:<>操作  

 message.setFrom(new InternetAddress("zb0128@fq-201001291038.com"));

//设置收件人地址  相当于rcpt to:<>操作

 message.setRecipient(Message.RecipientType.TO, new InternetAddress("zb1989@fq-201001291038.com"));

//设置邮件的主题   相当于subject:操作

 message.setSubject("你好 张宝1989");

       

//创建邮件内容对象 

 MimeBodyPart part = new MimeBodyPart();

 part.setContent("你好 我是张宝0128 这是我给你发的邮件", "text/html;charset=gb2312");     

 //创建邮件的描述对象 

 MimeMultipart mm = new MimeMultipart();

//想邮件描述中添加邮件体

 mm.addBodyPart(part);

//向邮件中添加邮件内容

message.setContent(mm);

//保存邮件

 message.saveChanges();

//写邮件

message.writeTo(new FileOutputStream("E://1.eml"));

 

 

 

发送一个带有图片的邮件:

//创建邮件 一步完成

MimeMessage message=new MimeMessage(Session.getInstance(new Properties()));

//设置邮件的发件人地址

message.setFrom(new InternetAddress("zb0128@fq-201001291038.com"));

//设置收件人的地址

message.setRecipient(Message.RecipientType.TO, new InternetAddress("zb1989@fq-201001291038.com"));

//设置邮件的主题

message.setSubject("你好 我给你发个图片");

//设置邮件的内容

MimeBodyPart body=new MimeBodyPart();

body.setContent("你好 看看这张美女图片好看吧<br/><br/><a href='http://www.baidu.com'><img src='cid:xx.jpg'></a>", "text/html;charset=gb2312");

//想邮件体中添加图片文件

MimeBodyPart image=new MimeBodyPart();

image.setDataHandler(new DataHandler(new FileDataSource("src//fileaccessor//f.jpg")));

//给邮件文件设置id

image.setContentID("xx.jpg");

//设置描述文件

MimeMultipart mm=new MimeMultipart();

//向邮件中添加邮件体

mm.addBodyPart(body);

//向邮件中添加图片

mm.addBodyPart(image);

//设置邮件中文件的关联关系

mm.setSubType("related");

//将描述对象添加到邮件中

message.setContent(mm);

//保存邮件

message.saveChanges();

//将邮件写在E://2.eml

message.writeTo(new FileOutputStream("E://2.eml"));

 

 

发送带有附件的邮件:

//创建邮件

MimeMessage message=new MimeMessage(Session.getInstance(new Properties()));

//设置发件人地址

message.setFrom(new InternetAddress("zb0128@fq-201001291038.com"));

//设置收件人的地址

message.setRecipient(Message.RecipientType.TO,new InternetAddress("zb1989@fq-201001291038.com"));

//设置邮件的主题

message.setSubject("这首歌很好听");

//设置邮件的内容

MimeBodyPart body=new MimeBodyPart();

//设置邮件的内容

body.setContent("给你发来一首歌 你听听 很不错","text/html;charset=gb2312");

//设置附件的内容

MimeBodyPart music=new MimeBodyPart();

DataHandler dh=new DataHandler(new FileDataSource("src//fileaccessor//大笑江湖.mp3"));

music.setDataHandler(dh);

//解决附件 中文乱码问题

//设置附件的名字

music.setFileName(MimeUtility.encodeText(dh.getName()));

//创建描述

MimeMultipart mm=new MimeMultipart();

mm.addBodyPart(body);

mm.addBodyPart(music);

mm.setSubType("mixed");

message.setContent(mm);

//保存邮件

message.saveChanges();

//将邮件写在E://3.eml

message.writeTo(new FileOutputStream("E://3.eml"));

 

发送两张图片的邮件:

在一张图片的基础上,只需要稍加改动就可以;

MimeBodyPart text=new MimeBodyPart();

text.setContent("你好 这是我给你发的两张图片<br/><img src='cid:xx.jpg'><br/><img src='cid:yy.jpg'>","text/html;charset=gb2312");

//第一张图片

      MimeBodyPart img1=new MimeBodyPart();

img1.setDataHandler(new DataHandler(new FileDataSource("src//fileaccessor//f.jpg")));

      img1.setContentID("xx.jpg");

      //第二章图片

     

      MimeBodyPart img2=new MimeBodyPart();

      img2.setDataHandler(new DataHandler(new FileDataSource("src//fileaccessor//f.jpg")));

      img2.setContentID("yy.jpg");

      //描述

      MimeMultipart mm=new MimeMultipart();

      mm.addBodyPart(text);

      mm.addBodyPart(img1);

      mm.addBodyPart(img2);

mm.setSubType("related");

 

 

发送一个及带有图片有带有附件的邮件:

//首先创建邮件

MimeMessage message=new MimeMessage(Session.getInstance(new Properties()));

      //设置属性

message.setFrom(new InternetAddress("zb0128@fq-201001291038.com"));

message.setRecipient(Message.RecipientType.TO,new InternetAddress("zb1989@fq-201001291038.com"));

      message.setSubject("这是世界上最复杂的邮件");

      //邮件的内容

      MimeBodyPart text=new MimeBodyPart();

text.setContent("你好 我给你发了一张图片 和一首很好听的歌<br/><img src='cid:xx.jpg'>", "text/html;charset=gb2312");

      //设置图片

      MimeBodyPart img=new MimeBodyPart();

img.setDataHandler(new DataHandler(new FileDataSource("src/fileaccessor/f.jpg")));

      img.setContentID("xx.jpg");

      MimeMultipart mm=new MimeMultipart();

      mm.addBodyPart(text);

      mm.addBodyPart(img);

      mm.setSubType("related");

      //在设置一个BodyPart来封装上面的正文和图片

      MimeBodyPart part=new MimeBodyPart();

      part.setContent(mm);

      //设置附件

      MimeBodyPart music=new MimeBodyPart();

DataHandler dh=new DataHandler(new FileDataSource("src/fileaccessor/大笑江湖.mp3"));

      music.setDataHandler(dh);

      String fileName=dh.getName();

      //解决中文乱码问题

                                                   music.setFileName(MimeUtility.encodeText(fileName));

     

      //创建描述

      MimeMultipart m=new MimeMultipart();

      m.addBodyPart(part);

      m.addBodyPart(music);

      //设置附件的关系

      m.setSubType("mixed");

      //添加到邮件中去

      message.setContent(m);

      message.saveChanges();

message.writeTo(new FileOutputStream("E:/5.eml"));

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值