[笔记] 传智播客-javaWeb笔记(4)
来源:互联网 发布:飞豆打印软件 官方 编辑:程序博客网 时间:2024/06/05 23:29
javaWeb笔记
第四章 JavaMail和Servlet
发送邮件的工作原理:
1:客户端把邮件发送给-------->发信服务器---->发送到目的地
2:发信服务器是各大电子邮箱的服务器。一般在前面加上smtp。比如:
smtp.sina.com,smtp.163.com,smtp.126.com等
3:只要去申请一个免费的电子邮箱,就可以获得一个发信服务器
发送邮件必须需要两个包:
mail,activation包。这两个包可以在
jakarta-tomcat-4.1.31\common\lib下面找到。一定要复制到
web模块下面WebMod\WEB-INF\lib下面
发送邮件需要导入的包:
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
发送邮件的涉及到的类
Aroperties类:
用来指定发信服务器,和使用发信服务器时是否需要身份验证:
Properties props = new Properties();//创建一个Properties的实例
props.put("mail.smtp.host", "smtp.sina.com");//设置发信服务器
props.put("mail.smtp.auth", "true");//要经过身份验证
B:Session类,会话类。要发邮件必须要创建一个Session类
Session session = Session.getInstance(props);
C:MimeMessage类.用来指定发送邮件的标题,文本,等
MimeMessage message = new MimeMessage(session);//得到MimeMessage的实例
message.setFrom(new InternetAddress("chengyuqing110@sina.com"));//设置发件人
message.addRecipients(Message.RecipientType.TO,"[url=mailto:chengyu-qing@163.com,chengyu-qing@tom.com]chengyu-qing@163.com,chengyu-qing@tom.com[/url]"); //设置收件人,可以同时指定多个收件人
message.setSubject("主题");//设置邮件的主题
message.setText("内容文本");//设置邮件的内容文本
D:Transport类。用来把邮件进行实际的发送
Transport transport = session.getTransport("smtp");//得到Transport类的一个实例
transport.connect(host, username, password);//连接发信服务器
transport.sendMessage(message, message.getAllRecipients());//发送邮件
transport.close();//发送之后关闭
说明:
1:选择发信人邮箱一定要是发信服务器里面申请的邮箱
比如:
如果发信服务器-------->smtp.sina.com
则发信人邮箱一定要是sina的邮箱,否则会出现错误
发送带有附件的邮件
具备知识:
要发送附件,必须有Multipart类。这个类用来负责管理附件,
一个Multipart类同多个MimeBodyPart构成。每一个MimeBodyPart就代表一个附件
如果要发送附件,则"文本"也代表一个附件。文本是附件的第一个MimeBodyPart
String host = "smtp.sina.com";
String from = "chengyuqing110@sina.com";
String to = "chengyu-qing@163.com";
String username = "chengyuqing110";
String password = "12345678";
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session session = Session.getInstance(props);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipients(Message.RecipientType.TO,to);
message.setSubject("这是试验");
//===设置附件的正文=======================================
MimeBodyPart bp1=new MimeBodyPart();
bp1.setText("正文");
//===============设置附件==================================
MimeBodyPart bp2=new MimeBodyPart();
bp2.setDataHandler(new DataHandler(new FileDataSource("c:\\过滤器.ppt")));
bp2.setFileName(MimeUtility.encodeText("c:\\过滤器.ppt")); //处理中文
//================================加入附件里面=======================
Multipart mp=new MimeMultipart();
mp.addBodyPart(bp1);
mp.addBodyPart(bp2);
message.setContent(mp);
//==================================================================
Transport transport = session.getTransport("smtp");
transport.connect(host, username, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
//====================================================================
收邮件
String Uid =request.getParameter("txtUid");//邮件服务器的用户名
String Pwd =request.getParameter("txtPwd");//邮件服务器的密码
String Host =request.getParameter("txtHost");//邮件服务器的主机名,一般是pop.sina.com或pop.163.com
Properties props = new Properties();
Session Getsession=Session.getDefaultInstance(props);//建立session
Store store = Getsession.getStore("pop3");
store.connect(Host,Uid,Pwd);
Folder folder=store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Message[] message=folder.getMessages();
message.getSubject()//得到邮件的主题
message.getSentDate().toLocaleString()//得到发信日期
Multipart p=(Multipart)message.getContent(); //得到一个Multipart,去读出附件
p.getBodyPart(0).getContent().toString();得到邮件的文本
//===========================================================================
- [笔记] 传智播客-javaWeb笔记(4)
- [笔记] 传智播客-javaWeb笔记(1)
- [笔记] 传智播客-javaWeb笔记(2)
- [笔记] 传智播客-javaWeb笔记(3)
- [笔记] 传智播客-javaWeb笔记(5)
- [笔记] 传智播客-javaWeb笔记(6)
- [笔记] 传智播客-javaWeb笔记(7)
- [笔记] 传智播客-javaWeb笔记(8)
- [笔记] 传智播客-javaWeb笔记(9)
- [笔记] 传智播客-javaWeb笔记(10)
- [笔记] 传智播客-javaWeb笔记(11)
- JavaWeb笔记(4)
- JavaWeb笔记
- javaweb笔记
- javaweb笔记
- JavaWeb笔记
- javaweb笔记
- JavaWeb笔记
- [笔记] 传智播客-javaWeb笔记(3)
- Conversion to Dalvik format failed with error 1解决方
- Windows Store apps开发[49]自定义MessageDialog
- Hibernate第五章知识点总结——第五章--事务管理
- JAVA-MySQL你不得不用到的一些关键字之select
- [笔记] 传智播客-javaWeb笔记(4)
- android电源管理
- JS入门基本教程(适合没编程基础新手)
- MySQL性能优化实战
- 用gdb调试程序笔记: 以段错误(Segmental fault)为例
- [笔记] 传智播客-javaWeb笔记(5)
- uva 674 - Coin Change
- 在html页中给元素添加事件
- [笔记] 传智播客-javaWeb笔记(6)