




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年金华东阳市人民医院招聘编外人员8人考前自测高频考点模拟试题含答案详解
- 2025重庆广播电视集团所属企业招聘人工智能工程师解决工程师4人笔试历年参考题库附带答案详解
- 2025华夏银行社会招聘模拟试卷附答案详解(模拟题)
- 2025辽宁沈阳市能源集团所属铁法能源公司招聘57人笔试历年参考题库附带答案详解
- 2025贵州习水县红景公司招聘3人笔试历年参考题库附带答案详解
- 2025福建漳州片仔癀药业股份有限公司市属国企应届毕业生专场招聘福建农林大学“青春筑梦国企同行”和华阳体育馆书记市长送岗笔试历年参考题库附带答案详解
- 2025广东佛山市高明区选聘9名公办初中校长考前自测高频考点模拟试题带答案详解
- 2025江西赣州市宁都县翠微旅游资源开发有限公司职业经理人招聘1人笔试历年参考题库附带答案详解
- 2025九洲集团成都创智融合科技有限公司招聘系统岗等测试(四川)笔试历年参考题库附带答案详解
- 2025“才聚齐鲁成就未来”山东黄金集团井下技能工人招聘2025人笔试历年参考题库附带答案详解
- 6.2 人大代表为人民 第二课时 课件 2025-2026学年六年级道德与法治 上册 统编版
- 2025年甘肃省金川集团股份有限公司技能操作人员社会招聘400人考试参考试题及答案解析
- 2025年会议行业研究报告及未来发展趋势预测
- T/CIE 189-2023硫化物全固态锂电池
- 借游戏账号合同5篇
- 2025年中职政治专业资格证面试技巧与答案解析大全
- 炎德·英才大联考长郡中学2026届高三月考试卷(一)生物试卷(含答案)
- 3.4 活动:电路创新设计展示说课稿 2023-2024学年教科版物理九年级上册
- 2025-2026学年人教鄂教版(2024)小学科学三年级上册(全册)教学设计(附目录P137)
- (高清版)T∕CES 243-2023 《构网型储能系统并网技术规范》
- 锻造操作机安全检查表模版
评论
0/150
提交评论