java如何登陆163邮箱获取登陆用户的好友列表模拟登录.docx
- 文档编号:9101199
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:19
- 大小:20KB
java如何登陆163邮箱获取登陆用户的好友列表模拟登录.docx
《java如何登陆163邮箱获取登陆用户的好友列表模拟登录.docx》由会员分享,可在线阅读,更多相关《java如何登陆163邮箱获取登陆用户的好友列表模拟登录.docx(19页珍藏版)》请在冰豆网上搜索。
java如何登陆163邮箱获取登陆用户的好友列表模拟登录
这个问题嘛,其实也不难的,不过要用java写一个登陆163邮箱的客户端出来的话,前提是你的163邮箱开通了POP3服务哦,一般来说,如果你的163邮箱是在2006年一起注册的,哪么会自动开启这个服务的,反之,就得自己花钱开通了。
原理都挺简单的,不过需要借助两个jar包:
activation.jar和mail.jar。
至于源代码呢,我可以贴给你参看一下,不过代码中设置的服务器是QQ邮箱的服务器,你只需要把“”改成“”就可以了。
代码需要自己倍加调试,仅作参考哦:
Javacode
packagetcpip.smtp;
importjava.util.Properties;
importjavax.activation.DataHandler;
importjavax.activation.FileDataSource;
importjavax.mail.*;
importjavax.mail.internet.*;
/**
*本程序用java来实现Email的发送,所用到的协议为:
SMTP,端口号为25;
*方法:
用Socket进行实现,打开客户端的Socket,并连接上服务器:
*如:
SocketsockClient=newSocket("",23);
*这表示发件方连接的是QQ邮箱的服务器,端口号为23
*
*/
publicclassEmail{
/**
*整个MIME邮件对象
*/
privateMimeMessagemimeMsg;
/**
*专门用来发送邮件的Session会话
*/
privateSessionsession;
/**
*封装邮件发送时的一些配置信息的一个属性对象
*/
privatePropertiesprops;
/**
*发件人的用户名
*/
privateStringusername;
/**
*发件人的密码
*/
privateStringpassword;
/**
*用来实现附件添加的组件
*/
privateMultipartmp;
/**
*发送参数初始化,有的服务器不需要用户验证,所以这里对用户名和密码进行初始化""
*
*@paramsmtp
*SMTP服务器的地址,比如要用QQ邮箱,哪么应为:
"",163为:
""
*/
publicEmail(Stringsmtp){
username="";
password="";
//设置邮件服务器
setSmtpHost(smtp);
//创建邮件
createMimeMessage();
}
/**
*设置发送邮件的主机(JavaMail需要Properties来创建一个session对象。
*它将寻找字符串"mail.smtp.host",属性值就是发送邮件的主机);
*
*@paramhostName
*/
publicvoidsetSmtpHost(StringhostName){
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服务器。
*/
publicbooleancreateMimeMessage(){
try{
System.out.println("准备获取邮件会话对象!
");
//用props对象来创建并初始化session对象
session=Session.getDefaultInstance(props,null);
}catch(Exceptione){
System.err.println("获取邮件会话对象时发生错误!
"+e);
returnfalse;
}
System.out.println("准备创建MIME邮件对象!
");
try{
//用session对象来创建并初始化邮件对象
mimeMsg=newMimeMessage(session);
//生成附件组件的实例
mp=newMimeMultipart();
}catch(Exceptione){
System.err.println("创建MIME邮件对象失败!
"+e);
returnfalse;
}
returntrue;
}
/**
*设置SMTP的身份认证
*/
publicvoidsetNeedAuth(booleanneed){
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");
}
/**
*进行用户身份验证时,设置用户名和密码
*/
publicvoidsetNamePass(Stringname,Stringpass){
System.out.println("程序得到用户名与密码");
username=name;
password=pass;
}
/**
*设置邮件主题
*
*@parammailSubject
*@return
*/
publicbooleansetSubject(StringmailSubject){
System.out.println("设置邮件主题!
");
try{
mimeMsg.setSubject(mailSubject);
}catch(Exceptione){
System.err.println("设置邮件主题发生错误!
");
returnfalse;
}
returntrue;
}
/**
*设置邮件内容,并设置其为文本格式或HTML文件格式,编码方式为UTF-8
*
*@parammailBody
*@return
*/
publicbooleansetBody(StringmailBody){
try{
System.out.println("设置邮件体格式");
BodyPartbp=newMimeBodyPart();
bp.setContent(
"
+mailBody,"text/html;charset=UTF-8");
//在组件上添加邮件文本
mp.addBodyPart(bp);
}catch(Exceptione){
System.err.println("设置邮件正文时发生错误!
"+e);
returnfalse;
}
returntrue;
}
/**
*增加发送附件
*
*@paramfilename
*邮件附件的地址,只能是本机地址而不能是网络地址,否则抛出异常
*@return
*/
publicbooleanaddFileAffix(Stringfilename){
System.out.println("增加邮件附件:
"+filename);
try{
BodyPartbp=newMimeBodyPart();
FileDataSourcefileds=newFileDataSource(filename);
bp.setDataHandler(newDataHandler(fileds));
//发送的附件前加上一个用户名的前缀
bp.setFileName(fileds.getName());
//添加附件
mp.addBodyPart(bp);
}catch(Exceptione){
System.err.println("增加邮件附件:
"+filename+"发生错误!
"+e);
returnfalse;
}
returntrue;
}
/**
*设置发件人地址
*
*@paramfrom
*发件人地址
*@return
*/
publicbooleansetFrom(Stringfrom){
System.out.println("设置发信人!
");
try{
mimeMsg.setFrom(newInternetAddress(from));
}catch(Exceptione){
returnfalse;
}
returntrue;
}
/**
*设置收件人地址
*
*@paramto
*收件人的地址
*@return
*/
publicbooleansetTo(Stringto){
System.out.println("设置收信人");
if(to==null)
returnfalse;
try{
mimeMsg.setRecipients(javax.mail.Message.RecipientType.TO,
InternetAddress.parse(to));
}catch(Exceptione){
returnfalse;
}
returntrue;
}
/**
*发送附件
*
*@paramcopyto
*@return
*/
publicbooleansetCopyTo(Stringcopyto){
System.out.println("发送附件到");
if(copyto==null)
returnfalse;
try{
mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC,
InternetAddress.parse(copyto));
}catch(Exceptione){
returnfalse;
}
returntrue;
}
/**
*发送邮件
*
*@return
*/
publicbooleansendout(){
try{
mimeMsg.setContent(mp);
mimeMsg.saveChanges();
System.out.println("正在发送邮件....");
SessionmailSession=Session.getInstance(props,null);
Transporttransport=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(Exceptione){
System.err.println("邮件发送失败!
"+e.getMessage());
e.printStackTrace();
returnfalse;
}
returntrue;
}
publicstaticvoidmain(String[]args){
Emailthemail=newEmail("");
Stringmailbody="JavaMail......";
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//////////////////////////////////////////////////////////packagetcpip.smtp;
importjava.util.Properties;
importjavax.activation.DataHandler;
importjavax.activation.FileDataSource;
importjavax.mail.*;
importjavax.mail.internet.*;
/**
*本程序用java来实现Email的发送,所用到的协议为:
SMTP,端口号为25;
*方法:
用Socket进行实现,打开客户端的Socket,并连接上服务器:
*如:
SocketsockClient=newSocket("",23);
*这表示发件方连接的是QQ邮箱的服务器,端口号为23
*
*/
publicclassEmail{
/**
*整个MIME邮件对象
*/
privateMimeMessagemimeMsg;
/**
*专门用来发送邮件的Session会话
*/
privateSessionsession;
/**
*封装邮件发送时的一些配置信息的一个属性对象
*/
privatePropertiesprops;
/**
*发件人的用户名
*/
privateStringusername;
/**
*发件人的密码
*/
privateStringpassword;
/**
*用来实现附件添加的组件
*/
privateMultipartmp;
/**
*发送参数初始化,有的服务器不需要用户验证,所以这里对用户名和密码进行初始化""
*
*@paramsmtp
*SMTP服务器的地址,比如要用QQ邮箱,哪么应为:
"",163为:
""
*/
publicEmail(Stringsmtp){
username="";
password="";
//设置邮件服务器
setSmtpHost(smtp);
//创建邮件
createMimeMessage();
}
/**
*设置发送邮件的主机(JavaMail需要Properties来创建一个session对象。
*它将寻找字符串"mail.smtp.host",属性值就是发送邮件的主机);
*
*@paramhostName
*/
publicvoidsetSmtpHost(StringhostName){
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服务器。
*/
publicbooleancreateMimeMessage(){
try{
System.out.println("准备获取邮件会话对象!
");
//用props对象来创建并初始化session对象
session=Session.getDefaultInstance(props,null);
}catch(Exceptione){
System.err.println("获取邮件会话对象时发生错误!
"+e);
returnfalse;
}
System.out.println("准备创建MIME邮件对象!
");
try{
//用session对象来创建并初始化邮件对象
mimeMsg=newMimeMessage(session);
//生成附件组件的实例
mp=newMimeMultipart();
}catch(Exceptione){
System.err.println("创建MIME邮件对象失败!
"+e);
returnfalse;
}
returntrue;
}
/**
*设置SMTP的身份认证
*/
publicvoidsetNeedAuth(booleanneed){
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");
}
/**
*进行用户身份验证时,设置用户名和密码
*/
publicvoidsetNamePass(Stringname,Stringpass){
System.out.println("程序得到用户名与密码");
username=name;
password=pass;
}
/**
*设置邮件主题
*
*@parammailSubject
*@return
*/
publicbooleansetSubject(StringmailSubject){
System.out.println("设置邮件主题!
");
try{
mimeMsg.setSubject(mailSubject);
}catch(Exceptione){
System.err.println("设置邮件主题发生错误!
");
returnfalse;
}
returntrue;
}
/**
*设置邮件内容,并设置其为文本格式或HTML文件格式,编码方式为UTF-8
*
*@parammailBody
*@return
*/
publicbooleansetBody(StringmailBody){
try{
System.out.println("设置邮件体格式");
BodyPartbp=newMimeBodyPart();
bp.setContent(
"
+mailBody,"text/html;charset=UTF-8");
//在组件上添加邮件文本
mp.addBodyPart(bp);
}catch(Exceptione){
System.err.println("设置邮件正文时发生错误!
"+e);
returnfalse;
}
returntrue;
}
/**
*增加发送附件
*
*@paramfilename
*邮件附件的地址,只能是本机地址而不能是网络地址,否则抛出异常
*@return
*/
publicbooleanaddFileAffix(Stringfilename){
System.out.println("增加邮件附件:
"+filename);
try{
BodyPartbp=newMimeBodyPart();
FileDataSourcefileds=newFileDataSource(filename);
bp.setDataHandler(newDataHandler(fileds));
//发送的附件前加上一个用户名的前缀
bp.setFileName(fileds.getName());
//添加附件
mp.addBodyPart(bp);
}catch(Exceptione){
System.err.println("增加邮件附件:
"+filename+"发生错误!
"+e);
returnfalse;
}
returntrue;
}
/**
*设置发件人地址
*
*@paramfrom
*发件人地址
*@return
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 如何 登陆 163 邮箱 获取 用户 好友 列表 模拟 登录