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"));