正文

javaWeb笔记(4)2008-04-01 19:59:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/ghlat520/33778.html

分享到:

第四章  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.*;                                        发送邮件的涉及到的类               A:Properties类:                  用来指定发信服务器,和使用发信服务器时是否需要身份验证:                   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,"chengyu-qing@163.com,chengyu-qing@tom.com"); //设置收件人,可以同时指定多个收件人     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[i].getSubject()//得到邮件的主题            message[i].getSentDate().toLocaleString()//得到发信日期             Multipart  p=(Multipart)message[i].getContent(); //得到一个Multipart,去读出附件                        p.getBodyPart(0).getContent().toString();得到邮件的文本                         //===========================================================================

阅读(1702) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册