为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

java如何登陆163邮箱%2C获取登陆用户的好友列表(模拟登录)

2017-09-02 23页 doc 48KB 20阅读

用户头像

is_833902

暂无简介

举报
java如何登陆163邮箱%2C获取登陆用户的好友列表(模拟登录)这个问题嘛,其实也不难的,不过要用java写一个登陆163邮箱的客户端出来的话,前提是你的163邮箱开通了POP3服务哦,一般来说,如果你的163邮箱是在2006年一起注册的,哪么会自动开启这个服务的,反之,就得自己花钱开通了。原理都挺简单的,不过需要借助两个jar包:activation.jar和mail.jar。至于源代码呢,我可以贴给你参看一下,不过代码中设置的服务器是QQ邮箱的服务器,你只需要把“smtp.qq.com”改成“smtp.163.com”就可以了。代码需要自己倍加调试,仅作参考哦: Java code ...
java如何登陆163邮箱%2C获取登陆用户的好友列表(模拟登录)
这个问题嘛,其实也不难的,不过要用java写一个登陆163邮箱的客户端出来的话,前提是你的163邮箱开通了POP3服务哦,一般来说,如果你的163邮箱是在2006年一起注册的,哪么会自动开启这个服务的,反之,就得自己花钱开通了。原理都挺简单的,不过需要借助两个jar包:activation.jar和mail.jar。至于源代码呢,我可以贴给你参看一下,不过代码中设置的服务器是QQ邮箱的服务器,你只需要把“smtp.qq.com”改成“smtp.163.com”就可以了。代码需要自己倍加调试,仅作参考哦: Java code package tcpip.smtp; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.*; import javax.mail.internet.*; /** ;
* 本程序用java来实现Email的发送,所用到的协议为:SMTP,端口号为25 * :用Socket进行实现,打开客户端的Socket,并连接上服务器:
* 如:Socket sockClient = new Socket("smtp.qq.com",23);
* 这表示发件方连接的是QQ邮箱的服务器,端口号为23 * */ public class Email { /** * 整个MIME邮件对象 */ private MimeMessage mimeMsg; /** * 专门用来发送邮件的Session会话 */ private Session session; /** * 封装邮件发送时的一些配置信息的一个属性对象 */ private Properties props; /** * 发件人的用户名 */ private String username; /** * 发件人的密码 */ private String password; /** * 用来实现附件添加的组件 */ private Multipart mp; /** * 发送参数初始化,有的服务器不需要用户验证,所以这里对用户名和密码进行初始化"" * * @param smtp * SMTP服务器的地址,比如要用QQ邮箱,哪么应为:"smtp.qq.com",163为:"smtp.163.com" */ public Email(String smtp) { username = ""; password = ""; // 设置邮件服务器 setSmtpHost(smtp); // 创建邮件 createMimeMessage(); } /** * 设置发送邮件的主机(JavaMail需要Properties来创建一个session对象。 * 它将寻找字符串"mail.smtp.host",属性值就是发送邮件的主机); * * @param hostName */ public void setSmtpHost(String hostName) { System.out.println("设置系统属性:mail.smtp.host = " + hostName); if (props == null) props = System.getProperties(); props.put("mail.smtp.host", hostName); } /** * (这个Session类代表JavaMail 中的一个邮件session. 每一个基于 * JavaMail的应用程序至少有一个session但是可以有任意多的session。 在这个例子中, * Session对象需要知道用来处理邮件的SMTP 服务器。 */ public boolean createMimeMessage() { try { System.out.println("准备获取邮件会话对象~"); // 用props对象来创建并初始化session对象 session = Session.getDefaultInstance(props, null); } catch (Exception e) { System.err.println("获取邮件会话对象时发生错误~" + e); return false; } System.out.println("准备创建MIME邮件对象~"); try { // 用session对象来创建并初始化邮件对象 mimeMsg = new MimeMessage(session); // 生成附件组件的实例 mp = new MimeMultipart(); } catch (Exception e) { System.err.println("创建MIME邮件对象失败~" + e); return false; } return true; } /** * 设置SMTP的身份认证 */ public void setNeedAuth(boolean need) { System.out.println("设置smtp身份认证:mail.smtp.auth = " + need); if (props == null) props = System.getProperties(); if (need) props.put("mail.smtp.auth", "true"); else props.put("mail.smtp.auth", "false"); } /** * 进行用户身份验证时,设置用户名和密码 */ public void setNamePass(String name, String pass) { System.out.println("程序得到用户名与密码"); username = name; password = pass; } /** * 设置邮件主题 * * @param mailSubject * @return */ public boolean setSubject(String mailSubject) { System.out.println("设置邮件主题~"); try { mimeMsg.setSubject(mailSubject); } catch (Exception e) { System.err.println("设置邮件主题发生错误~"); return false; } return true; } /** * 设置邮件内容,并设置其为文本格式或HTML文件格式,编码方式为UTF-8 * * @param mailBody * @return */ public boolean setBody(String mailBody) { try { System.out.println("设置邮件体格式"); BodyPart bp = new MimeBodyPart(); bp.setContent( "" + mailBody, "text/html;charset=UTF-8"); // 在组件上添加邮件文本 mp.addBodyPart(bp); } catch (Exception e) { System.err.println("设置邮件正文时发生错误~" + e); return false; } return true; } /** * 增加发送附件 * * @param filename * 邮件附件的地址,只能是本机地址而不能是网络地址,否则抛出异常 * @return */ public boolean addFileAffix(String filename) { System.out.println("增加邮件附件:" + filename); try { BodyPart bp = new MimeBodyPart(); FileDataSource fileds = new FileDataSource(filename); bp.setDataHandler(new DataHandler(fileds)); // 发送的附件前加上一个用户名的前缀 bp.setFileName(fileds.getName()); // 添加附件 mp.addBodyPart(bp); } catch (Exception e) { System.err.println("增加邮件附件:" + filename + "发生错误~" + e); return false; } return true; } /** * 设置发件人地址 * * @param from * 发件人地址 * @return */ public boolean setFrom(String from) { System.out.println("设置发信人~"); try { mimeMsg.setFrom(new InternetAddress(from)); } catch (Exception e) { return false; } return true; } /** * 设置收件人地址 * * @param to * 收件人的地址 * @return */ public boolean setTo(String to) { System.out.println("设置收信人"); if (to == null) return false; try { mimeMsg.setRecipients(javax.mail.Message.RecipientType.TO, InternetAddress.parse(to)); } catch (Exception e) { return false; } return true; } /** * 发送附件 * * @param copyto * @return */ public boolean setCopyTo(String copyto) { System.out.println("发送附件到"); if (copyto == null) return false; try { mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC, InternetAddress.parse(copyto)); } catch (Exception e) { return false; } return true; } /** * 发送邮件 * * @return */ public boolean sendout() { try { mimeMsg.setContent(mp); mimeMsg.saveChanges(); System.out.println("正在发送邮件...."); Session mailSession = Session.getInstance(props, null); Transport transport = mailSession.getTransport("smtp"); // 真正的连接邮件服务器并进行身份验证 transport.connect((String) props.get("mail.smtp.host"), username, password); // 发送邮件 transport.sendMessage(mimeMsg, mimeMsg .getRecipients(javax.mail.Message.RecipientType.TO)); System.out.println("发送邮件成功~"); transport.close(); } catch (Exception e) { System.err.println("邮件发送失败~" + e.getMessage()); e.printStackTrace(); return false; } return true; } public static void main(String[] args) { Email themail = new Email("smtp.qq.com"); String mailbody = "Java Mail......"; themail.setNeedAuth(true); themail.setSubject("你好"); themail.setBody(mailbody); themail.setTo(******); themail.setFrom(********); themail.addFileAffix("C:/CEPxDD0D.tmp");// 附件文件路径,例如:C:/222.jpg,*注;"/"的写法; themail.setNamePass(*****, ******); themail.sendout(); } } 3//////////////////////////////////////////////////////////package tcpip.smtp; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.*; import javax.mail.internet.*; /** * 本程序用java来实现Email的发送,所用到的协议为:SMTP,端口号为25;
* 方法:用Socket进行实现,打开客户端的Socket,并连接上服务器:
* 如:Socket sockClient = new Socket("smtp.qq.com",23);
* 这表示发件方连接的是QQ邮箱的服务器,端口号为23 * */ public class Email { /** * 整个MIME邮件对象 */ private MimeMessage mimeMsg; /** * 专门用来发送邮件的Session会话 */ private Session session; /** * 封装邮件发送时的一些配置信息的一个属性对象 */ private Properties props; /** * 发件人的用户名 */ private String username; /** * 发件人的密码 */ private String password; /** * 用来实现附件添加的组件 */ private Multipart mp; /** * 发送参数初始化,有的服务器不需要用户验证,所以这里对用户名和密码进行初始化 "" * * @param smtp * SMTP服务器的地址,比如要用QQ邮箱,哪么应为:"smtp.qq.com", 163为:"smtp.163.com" */ public Email(String smtp) { username = ""; password = ""; // 设置邮件服务器 setSmtpHost(smtp); // 创建邮件 createMimeMessage(); } /** * 设置发送邮件的主机(JavaMail需要Properties来创建一个session对象。 * 它将寻找字符串"mail.smtp.host",属性值就是发送邮件的主机); * * @param hostName */ public void setSmtpHost(String hostName) { System.out.println("设置系统属性:mail.smtp.host = " + hostName); if (props == null) props = System.getProperties(); props.put("mail.smtp.host", hostName); } /** * (这个Session类代表JavaMail 中的一个邮件session. 每一个基于 * JavaMail的应用程序至少有一个session但是可以有任意多的session。 在这个例子中, * Session对象需要知道用来处理邮件的SMTP 服务器。 */ public boolean createMimeMessage() { try { System.out.println("准备获取邮件会话对象~"); // 用props对象来创建并初始化session对象 session = Session.getDefaultInstance(props, null); } catch (Exception e) { System.err.println("获取邮件会话对象时发生错误~" + e); return false; } System.out.println("准备创建MIME邮件对象~"); try { // 用session对象来创建并初始化邮件对象 mimeMsg = new MimeMessage(session); // 生成附件组件的实例 mp = new MimeMultipart(); } catch (Exception e) { System.err.println("创建MIME邮件对象失败~" + e); return false; } return true; } /** * 设置SMTP的身份认证 */ public void setNeedAuth(boolean need) { System.out.println("设置smtp身份认证:mail.smtp.auth = " + need); if (props == null) props = System.getProperties(); if (need) props.put("mail.smtp.auth", "true"); else props.put("mail.smtp.auth", "false"); } /** * 进行用户身份验证时,设置用户名和密码 */ public void setNamePass(String name, String pass) { System.out.println("程序得到用户名与密码"); username = name; password = pass; } /** * 设置邮件主题 * * @param mailSubject * @return */ public boolean setSubject(String mailSubject) { System.out.println("设置邮件主题~"); try { mimeMsg.setSubject(mailSubject); } catch (Exception e) { System.err.println("设置邮件主题发生错误~"); return false; } return true; } /** * 设置邮件内容,并设置其为文本格式或HTML文件格式,编码方式为UTF-8 * * @param mailBody * @return */ public boolean setBody(String mailBody) { try { System.out.println("设置邮件体格式"); BodyPart bp = new MimeBodyPart(); bp.setContent( "" + mailBody, "text/html;charset=UTF-8"); // 在组件上添加邮件文本 mp.addBodyPart(bp); } catch (Exception e) { System.err.println("设置邮件正文时发生错误~" + e); return false; } return true; } /** * 增加发送附件 * * @param filename * 邮件附件的地址,只能是本机地址而不能是网络地址,否则抛出异常 * @return */ public boolean addFileAffix(String filename) { System.out.println("增加邮件附件:" + filename); try { BodyPart bp = new MimeBodyPart(); FileDataSource fileds = new FileDataSource(filename); bp.setDataHandler(new DataHandler(fileds)); // 发送的附件前加上一个用户名的前缀 bp.setFileName(fileds.getName()); // 添加附件 mp.addBodyPart(bp); } catch (Exception e) { System.err.println("增加邮件附件:" + filename + "发生错误~" + e); return false; } return true; } /** * 设置发件人地址 * * @param from * 发件人地址 * @return */ public boolean setFrom(String from) { System.out.println("设置发信人~"); try { mimeMsg.setFrom(new InternetAddress(from)); } catch (Exception e) { return false; } return true; } /** * 设置收件人地址 * * @param to * 收件人的地址 * @return */ public boolean setTo(String to) { System.out.println("设置收信人"); if (to == null) return false; try { mimeMsg.setRecipients(javax.mail.Message.RecipientType.TO, InternetAddress.parse(to)); } catch (Exception e) { return false; } return true; } /** * 发送附件 * * @param copyto * @return */ public boolean setCopyTo(String copyto) { System.out.println("发送附件到"); if (copyto == null) return false; try { mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC, InternetAddress.parse(copyto)); } catch (Exception e) { return false; } return true; } /** * 发送邮件 * * @return */ public boolean sendout() { try { mimeMsg.setContent(mp); mimeMsg.saveChanges(); System.out.println("正在发送邮件...."); Session mailSession = Session.getInstance(props, null); Transport transport = mailSession.getTransport("smtp"); // 真正的连接邮件服务器并进行身份验证 transport.connect((String) props.get("mail.smtp.host"), username, password); // 发送邮件 transport.sendMessage(mimeMsg, mimeMsg .getRecipients(javax.mail.Message.RecipientType.TO)); System.out.println("发送邮件成功~"); transport.close(); } catch (Exception e) { System.err.println("邮件发送失败~" + e.getMessage()); e.printStackTrace(); return false; } return true; } public static void main(String[] args) { Email themail = new Email("smtp.qq.com"); String mailbody = "Java Mail......"; themail.setNeedAuth(true); themail.setSubject("你好"); themail.setBody(mailbody); themail.setTo(******); themail.setFrom(********); themail.addFileAffix("C:/CEPxDD0D.tmp");// 附件文件路径,例如:C:/222.jpg,*注;"/"的写法; themail.setNamePass(*****, ******); themail.sendout(); } }
/
本文档为【java如何登陆163邮箱%2C获取登陆用户的好友列表(模拟登录)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索