




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1) 第一个程序:MailClientAuthFromMydomain.java/带用户验证的读取邮件程序//class EmaiAuthenticator extends Authenticator private String m_username;private String m_userpass;EmaiAuthenticator(String username, String userpass) super();m_username = username;m_userpass = userpass;public PasswordAuthentication getPasswordAuthentication() return new PasswordAuthentication(m_username, m_userpass);public class MailClientAuthFromMydomain EmaiAuthenticator ma;/验证类EmaiAuthenticator对象protected Session session;/邮件会话protected Store store;private String receiveHost = localhost;/接收邮件服务器主机名private String receiveProtocol = imap;/接收邮件协议private String username=admin;/邮箱用户名private String password=1234;/邮箱密码public void init() throws Exception Properties props = new Properties();props.put(tocol, receiveProtocol);props.put(mail.imap.class, com.sun.mail.imap.IMAPStore);props.put(mail.smtp.auth,true);/在程序中设置需要身份验证的property/设置JavaMail属性ma = new EmaiAuthenticator(username,password);/实例化身份验证类对象session = Session.getDefaultInstance(props, (Authenticator)ma);/在session对象中注册PasswordAuthentication对象,以便验证用户名和密码store = session.getStore(receiveProtocol);/接收邮件服务器上注册用户的存储空间,参数为接收邮件协议imapstore.connect(receiveHost, null, null);/连接邮件服务器时,将用户名和口令都设置为null。public void close() throws Exception store.close();public void receiveMessage() throws Exception browseMessagesFromFolder(inbox);public void browseMessagesFromFolder(String folderName) throws Exception Folder folder = store.getFolder(folderName);if (folder = null)throw new Exception(folderName + 邮件夹不存在!);browseMessagesFromFolder(folder);public void browseMessagesFromFolder(Folder folder) throws Exception folder.open(Folder.READ_ONLY);System.out.println(You have + folder.getMessageCount()+ messages in inbox!);System.out.println(You have + folder.getUnreadMessageCount()+ unread messages in inbox!);Message messages = folder.getMessages();for (int i = 0; i messages.length; i+) System.out.println(-第 + (i + 1) + 封邮件-);System.out.println(From: + messagesi.getFrom()0);System.out.println(Subject: + messagesi.getSubject();System.out.println(Text: + messagesi.getContent();System.out.println();folder.close(false);public static void main(String args) throws Exception MailClientAuthFromMydomain client = new MailClientAuthFromMydomain();client.init();client.receiveMessage();client.close();2)第二个程序:MailAuthenticatorDialog.java/用户信息验证对话框界面/读取用户信息的时候先弹出的一个对话框/public class MailAuthenticatorDialog extends Authenticatorstatic JDialog passwordDg;/输入用户名和密码的对话框private JLabel mainLb;/标签,提示“输入用户名和密码”private JLabel userLb;private JTextField usernameTf;/用户名输入框private JLabel passwordLb;/密码标签private JPasswordField passwordPf=new JPasswordField(20);/密码输入框private JButton okBtn;/确定按钮public MailAuthenticatorDialog()this();public MailAuthenticatorDialog(String username)passwordDg=new JDialog(new JFrame(),输入用户名和密码,true);/在Java中,对话框是有边框、有标题的独立存在的容器,并且不能被其他容器包容/JDialog不能作为程序的最外层容器,也不能包含菜单条/JDialog一般有固定的布局,而且不能随便改变对话框的大小/JDialog必须隶属于一个JFrame,并且由这个JFrame负责弹出/构造方法JDialog(new JFrame(),输入用户名和密码,true);/分别代表隶属于的那个JFrame窗口,对话框的标题,对话框是否为有模式的Container container=passwordDg.getContentPane();/取得对话框隶属的那个JFrame的顶级容器container.setLayout(new GridLayout(4,1);/设置为网格布局方式mainLb=new JLabel(请输入用户名和口令:);container.add(mainLb);/将标签添加到面板中 JPanel userJp=new JPanel();userLb=new JLabel(用户名:);usernameTf=new JTextField(20);userJp.add(userLb);userJp.add(usernameTf);/将用户名标签和输入框添加到JPanle中usernameTf.setText(username);/设置用户名输入框的初始值container.add(userJp);/将userJp添加到顶级容器container中JPanel passwordPanel=new JPanel();passwordLb=new JLabel(密码:);passwordPf=new JPasswordField(20);passwordPanel.add(passwordLb);passwordPanel.add(passwordPf);/将密码标签和输入框添加到面板JPanel passwordPanel中container.add(passwordPanel);/将passwordPanel添加到顶级容器container中JPanel okPanel=new JPanel();okBtn=new JButton(确定);okPanel.add(okBtn);container.add(okPanel);passwordDg.pack();/pack()是让系统根据窗口内部组件的preferredSize和layout重新设置窗口的大小,使其刚好能够容下内部的所有组件 。ActionListener al=new ActionListener()/匿名内部类,动作事件ActionEvnetpublic void actionPerformed(ActionEvent e)passwordDg.setVisible(false);/隐藏用户名和密码的对话框;usernameTf.addActionListener(al);passwordPf.addActionListener(al);okBtn.addActionListener(al);/给用户名、密码输入框以及确定按钮注册事件监视器public PasswordAuthentication getPasswordAuthentication()passwordDg.setVisible(true);/程序执行到需要进行邮箱用户名和密码验证的时候,显示对话框String password=new String(passwordPf.getPassword();/提取用户在对话框中输入的密码String username=usernameTf.getText();/提取用户在对话框中输入的用户名/*if(username.equals()|password.equals()JOptionPane.showMessageDialog(null,用户名或密码不能为空!);passwordDg.setVisible(true);*/passwordPf.setText();return new PasswordAuthentication(username,password);/返回一个PasswordAuthentication对象3)第三个程序:MailClientFromMydomainDialog.java/带用户验证的读取邮件程序//在读取邮件信息的时候先弹出一个对话框,要求用户输入邮箱地址和密码/只有用户输入信息正确的时候,才能读取出邮箱中的信息/public class MailClientFromMydomainDialog Authenticator ma;/ 验证类EmaiAuthenticator对象protected Session session;/ 邮件会话protected Store store;private String receiveHost = localhost;/ 接收邮件服务器主机名private String receiveProtocol = imap;/ 接收邮件协议/ private String username = admin;/ 邮箱用户名/ private String password = 1234;/ 邮箱密码public void init() Properties props = new Properties();props.put(tocol, receiveProtocol);props.put(mail.imap.class, com.sun.mail.imap.IMAPStore);props.put(mail.smtp.auth, true);/ 在程序中设置需要身份验证的property/ 设置JavaMail属性ma = new MailAuthenticatorDialog(admin);/ 实例化身份验证类对象session = Session.getDefaultInstance(props, (Authenticator) ma);/ 在session对象中注册PasswordAuthentication对象,以便验证用户名和密码try store = session.getStore(receiveProtocol);/ 接收邮件服务器上注册用户的存储空间,参数为接收邮件协议imapstore.connect(receiveHost, null, null);/ 连接邮件服务器时,将用户名和口令都设置为null。 catch (AuthenticationFailedException e) JOptionPane.showMessageDialog(null, 用户名和密码不正确,系统结束!);System.exit(0); catch (Exception e1) e1.printStackTrace();public void close() throws Exception store.close();public void receiveMessage() throws Exception browseMessagesFromFolder(inbox);public void browseMessagesFromFolder(String folderName) throws Exception Folder folder = store.getFolder(folderName);if (folder = null)throw new Exception(folderName + 邮件夹不存在!);browseMessagesFromFolder(folder);public void browseMessagesFromFolder(Folder folder) throws Exception folder.open(Folder.READ_ONLY);System.out.println(You have + folder.getMessageCount()+ messages in inbox!);System.out.println(You have + folder.getUnreadMessageCount()+ unread messages in inbox!);Message messages = folder.getMessages();for (int i = 0; i messages.length; i+) System.out.println(-第 + (i + 1) + 封邮件-);System.out.println(From: + messagesi.getFrom()0);System.out.println(Subject: + messagesi.getSubject();System.out.println(Text: + messagesi.getContent();System.out.println();folder.close(false);public static void main(String args) throws Exception MailClientFromMydomainDialog client = new MailClientFromMydomainDialog();client.init();client.receiveMessage();client.close();System.exit(0);4)第四个程序MailClientFrom126Dialog.java/带用户验证的读取邮件程序/读取邮箱中发件人是huahua_中的所有邮件/在读取邮件信息的时候先弹出一个对话框,要求用户输入邮箱地址和密码/只有用户输入信息正确的时候,才能读取出邮箱中的信息/public class MailClientFrom126Dialog Authenticator ma;/ 验证类EmaiAuthenticator对象protected Session session;/ 邮件会话protected Store store;private String receiveHost = ;/ 126接收邮箱服务器地址private String receiveProtocol = pop3;/ 126接收邮件协议private String fromAddr = huahua_;/ private String username = admin;/ 邮箱用户名/ private String password = 1234;/ 邮箱密码public void init() Properties props = new Properties();props.put(tocol, receiveProtocol);props.put(mail.imap.class, com.sun.mail.imap.IMAPStore);props.put(mail.smtp.auth, true);/ 在程序中设置需要身份验证的property/ 设置JavaMail属性ma = new MailAuthenticatorDialog();/ 实例化身份验证类对象session = Session.getDefaultInstance(props, (Authenticator) ma);/ 在session对象中注册PasswordAuthentication对象,以便验证用户名和密码try store = session.getStore(receiveProtocol);/ 接收邮件服务器上注册用户的存储空间,参数为接收邮件协议imapstore.connect(receiveHost, null, null);/ 连接邮件服务器时,将用户名和口令都设置为null。 catch (AuthenticationFailedException e) JOptionPane.showMessageDialog(null, 用户名和密码不正确,系统结束!);System.exit(0); catch (Exception e1) e1.printStackTrace();public void close() throws Exception store.close();public void receiveMessage() throws Exception browseMessagesFromFolder(inbox);public void browseMessagesFromFolder(String folderName) throws Exception Folder folder = store.getFolder(folderName);if (folder = null)throw new Exception(folderName + 邮件夹不存在!);browseMessagesFromFolder(folder);public void browseMessagesFromFolder(Folder folder) throws Exception folder.open(Folder.READ_ONLY);System.out.println(You have + folder.getMessageCount()+ messages in inbox!);System.out.println(You have + folder.getUnreadMessageCount()+ unread messages in inbox!);Message messages = folder.getMessages();for (int i = 0; i messages.length; i+) String str = messagesi.getFrom()0.toString();int startIndex = str.indexOf();if (endIndex startIndex) String strTmp = str.substring(startIndex + 1, endIndex).trim();/ System.out.println(strTmp= + strTmp);if (strTmp.equalsIgnoreCase(fromAddr) / if(messagesi.getFrom()0).toString().equalsIgnoreCase(fromAddr)System.out.println(-第 + (i + 1) + 封邮件-);System.out.println(From: + messagesi.getFrom()0);System.out.println(Subject: + messagesi.getSubject();System.out.println(Text: + messagesi.getContent();System.out.println();folder.close(false);public static void main(String args) throws Exception MailClientFrom126Dialog client = new MailClientFrom126Dialog();client.init();client.receiveMessage();client.close();System.exit(0);5)第五个程序:MailSenderFrom126Dialog.java/在读取邮件信息的时候先弹出一个对话框,要求用户输入邮箱地址和密码/只有用户输入信息正确的时候,才能发送邮箱邮件/由huahua_发往huahua_/public class MailSenderFrom126Dialog protected Session session;protected Store store;private Authenticator ma;private String sendHost = ;/发送邮件服务器地址private String sendProtocol = smtp;/发送邮件协议private String toAddr = huahua_;/收件人private String fromAddr = huahua_;/ 发件人public void init() throws Exc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区防灾减灾工作总结范本总结
- 单招职测考试题及答案
- 合伙企业试题及答案
- 培训活动总结
- 知识题库-电厂燃环检修岗位入职考试题及答案
- 保安员防诈骗知识培训课件
- 围养殖治理措施方案(3篇)
- 金属材料-课件(人教版九年级下册)
- 风险审批绩效方案(3篇)
- 保安员基本消防知识培训课件
- 13电磁铁的应用(讲义)
- 佳能相机IXUS210(PC1467)说明书
- 2024年七年级新生分班考试数学试卷(附答案)
- 2024年北京广播电视台招聘140人历年高频500题难、易错点模拟试题附带答案详解
- 医美代运营合作协议书范本
- 《希腊神话》导读课
- 2024年幕墙工程专业分包合同协议书范本
- 三年级语文上册全册教案 (含教学反思)
- 女士鞋履采购合同
- 乒乓球俱乐部管理制度
- 年产塑料色母粒5000吨项目可行性研究报告
评论
0/150
提交评论