java如何登陆163邮箱获取登陆用户的好友列表模拟登录文档格式.docx
《java如何登陆163邮箱获取登陆用户的好友列表模拟登录文档格式.docx》由会员分享,可在线阅读,更多相关《java如何登陆163邮箱获取登陆用户的好友列表模拟登录文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
*如:
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("
hostName);
*(这个Session类代表JavaMail中的一个邮件session.每一个基于
*JavaMail的应用程序至少有一个session但是可以有任意多的session。
在这个例子中,
*Session对象需要知道用来处理邮件的SMTP服务器。
publicbooleancreateMimeMessage(){
try{
准备获取邮件会话对象!
);
//用props对象来创建并初始化session对象
session=Session.getDefaultInstance(props,null);
}catch(Exceptione){
System.err.println("
获取邮件会话对象时发生错误!
+e);
returnfalse;
准备创建MIME邮件对象!
//用session对象来创建并初始化邮件对象
mimeMsg=newMimeMessage(session);
//生成附件组件的实例
mp=newMimeMultipart();
创建MIME邮件对象失败!
returntrue;
*设置SMTP的身份认证
publicvoidsetNeedAuth(booleanneed){
设置smtp身份认证:
mail.smtp.auth="
+need);
if(need)
mail.smtp.auth"
"
true"
else
false"
*进行用户身份验证时,设置用户名和密码
publicvoidsetNamePass(Stringname,Stringpass){
程序得到用户名与密码"
username=name;
password=pass;
*设置邮件主题
*@parammailSubject
*@return
publicbooleansetSubject(StringmailSubject){
设置邮件主题!
mimeMsg.setSubject(mailSubject);
设置邮件主题发生错误!
*设置邮件内容,并设置其为文本格式或HTML文件格式,编码方式为UTF-8
*@parammailBody
publicbooleansetBody(StringmailBody){
设置邮件体格式"
BodyPartbp=newMimeBodyPart();
bp.setContent(
"
metahttp-equiv=Content-Typecontent=text/html;
charset=UTF-8>
+mailBody,"
text/html;
charset=UTF-8"
//在组件上添加邮件文本
mp.addBodyPart(bp);
设置邮件正文时发生错误!
*增加发送附件
*@paramfilename
*邮件附件的地址,只能是本机地址而不能是网络地址,否则抛出异常
publicbooleanaddFileAffix(Stringfilename){
增加邮件附件:
+filename);
FileDataSourcefileds=newFileDataSource(filename);
bp.setDataHandler(newDataHandler(fileds));
//发送的附件前加上一个用户名的前缀
bp.setFileName(fileds.getName());
//添加附件
+filename+"
发生错误!
*设置发件人地址
*@paramfrom
*发件人地址
publicbooleansetFrom(Stringfrom){
设置发信人!
mimeMsg.setFrom(newInternetAddress(from));
*设置收件人地址
*@paramto
*收件人的地址
publicbooleansetTo(Stringto){
设置收信人"
if(to==null)
mimeMsg.setRecipients(javax.mail.Message.RecipientType.TO,
InternetAddress.parse(to));
*发送附件
*@paramcopyto
publicbooleansetCopyTo(Stringcopyto){
发送附件到"
if(copyto==null)
mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC,
InternetAddress.parse(copyto));
*发送邮件
publicbooleansendout(){
mimeMsg.setContent(mp);
mimeMsg.saveChanges();
正在发送邮件...."
SessionmailSession=Session.getInstance(props,null);
Transporttransport=mailSession.getTransport("
smtp"
//真正的连接邮件服务器并进行身份验证
transport.connect((String)props.get("
),username,
password);
//发送邮件
transport.sendMessage(mimeMsg,mimeMsg
.getRecipients(javax.mail.Message.RecipientType.TO));
发送邮件成功!
transport.close();
邮件发送失败!
+e.getMessage());
e.printStackTrace();
publicstaticvoidmain(String[]args){
Emailthemail=newEmail("
Stringmailbody="
JavaMail......"
themail.setNeedAuth(true);
themail.setSubject("
你好"
themail.setBody(mailbody);
themail.setTo(******);
themail.setFrom(********);
themail.addFileAffix("
C:
/CEPxDD0D.tmp"
//附件文件路径,例如:
/222.jpg,*注;
/"
的写法;
themail.setNamePass(*****,******);
themail.sendout();
}
3//////////////////////////////////////////////////////////packagetcpip.smtp;