路
来源:互联网 发布: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.可以编写程序代码生成一封带内嵌图片和文字的邮件
代码如下:
- public class MimeImageMail {
-
- public static void main(String[] args)throws Exception {
-
- MimeMessage message = new MimeMessage(Session.getInstance(new Properties()));
-
- message.setFrom(new InternetAddress("aa@pan.com"));
- message.setRecipient(Message.RecipientType.TO, new InternetAddress("bb@redarmy.com"));
- message.setSubject("主题");
-
- MimeBodyPart text = new MimeBodyPart();
- text.setContent("xxxxxxxx你好中英文<br/><br/><img src='cid:xx.jpg'>xxxxxxxx", "text/html;charset=utf-8");
-
-
- MimeBodyPart image = new MimeBodyPart();
- image.setDataHandler(new DataHandler(new FileDataSource("src//f.jpg")));
- image.setContentID("xx.jpg");
-
-
-
- MimeMultipart mm = new MimeMultipart();
- mm.addBodyPart(text);
- mm.addBodyPart(image);
-
-
- mm.setSubType("related");
-
-
- message.setContent(mm);
-
- message.saveChanges();
-
- message.writeTo(new FileOutputStream("D://2.eml"));
-
-
- }
- }
1.可以编写程序生成一封带有两个附件又带图片的复杂邮件,并且做了附件名称乱码问题的处理。
代码如下:
- public class EmailAndAttch {
- public static void main(String[] args) throws Exception{
-
- MimeMessage message=new MimeMessage(Session.getInstance(new Properties()));
-
- message.setFrom(new InternetAddress("abcd@qq.com"));
- message.setRecipient(Message.RecipientType.TO,new InternetAddress("abcd@qq.com"));
- message.setSubject("一个图片和两个附件");
- MimeBodyPart text=new MimeBodyPart();
- text.setContent("xxxxxxx这是中文的<br/><img src=‘cid:xx.jpg’><br/>yyyyyy","text/html;charset=utf8");
-
- MimeBodyPart image=new MimeBodyPart();
- DataHandler dh=new DataHandler(new FileDataSource("src//f.jpg"));
- image.setDataHandler(dh);
- image.setContentID("xx.jpg");
-
- MimeBodyPart attch=new MimeBodyPart();
- DataHandler dh1=new DataHandler(new FileDataSource("src//大笑.mp3"));
-
- attch.setDataHandler(dh1);
- String filename=dh1.getName();
- attch.setFileName(MimeUtility.encodeText(filename));
-
- MimeBodyPart attch1=new MimeBodyPart();
- DataHandler dh2=new DataHandler(new FileDataSource("src//f.jpg"));
- String filename1=dh2.getName();
- attch1.setFileName(MimeUtility.encodeText(filename1));
- attch1.setDataHandler(dh2);
-
- MimeMultipart mm=new MimeMultipart();
- mm.addBodyPart(text);
- mm.addBodyPart(image);
- mm.addBodyPart(attch1);
- mm.setSubType("related");
-
- MimeBodyPart part=new MimeBodyPart();
- part.setContent(mm);
-
- MimeMultipart m=new MimeMultipart();
- m.addBodyPart(part);
- m.addBodyPart(attch);
- m.setSubType("mixed");
-
- message.setContent(m);
- message.saveChanges();
- message.writeTo(new FileOutputStream("d://55.eml"));
- }
-
- }
-
。
只是个简单的总结,怎么记住汗自己想去吧。这只是发送邮件的基础,想知道怎么向互联网发邮件期待吗,正在学习中汗。