java邮件收发功能实现代码
本文实例为大家分享了邮件收发功能的具体实现代码,供大家参考,具体内容如下
准备工作,环境搭建:
1.本地搭建一个邮件服务器
易邮服务器,eyoumailserversetup.exe
2.新建邮箱账号
张三给李四发邮件。
步骤1:
新建域名:工具,服务器设置,单域名框中输入itcast.com
步骤2:
新建邮箱账号: zhangsan@itcast.com
lisi@itcast.com
3.安装foxmail
配置邮件发送服务器(smtp): localhost 25
邮件接收服务器(pop3): localhost 110
再新建账号,就可以接收邮件了!
注意
如果是web项目,因为javaee自带的有邮件功能,可能存在问题!
我们要用自己的mail.jar文件功能! 需要删除javaee中mail包!
使用:
JavaMail开发,先引入jar文件:
activation.jar 【如果使用jdk1.6或以上版本,可以不用这个jar文件】
mail.jar 【邮件发送核心包】
/**
*1.发送一封普通邮件
*@authorJie.Yuan
*
*/
publicclassApp_SendMail{
@Test
publicvoidtestSend()throwsException{
//0.邮件参数
Propertiesprop=newProperties();
prop.put("mail.transport.protocol","smtp");//指定协议
prop.put("mail.smtp.host","localhost");//主机stmp.qq.com
prop.put("mail.smtp.port",25);//端口
prop.put("mail.smtp.auth","true");//用户密码认证
prop.put("mail.debug","true");//调试模式
//1.创建一个邮件的会话
Sessionsession=Session.getDefaultInstance(prop);
//2.创建邮件体对象(整封邮件对象)
MimeMessagemessage=newMimeMessage(session);
//3.设置邮件体参数:
//3.1标题
message.setSubject("我的第一封邮件");
//3.2邮件发送时间
message.setSentDate(newDate());
//3.3发件人
message.setSender(newInternetAddress("zhangsan@itcast.com"));
//3.4接收人
message.setRecipient(RecipientType.TO,newInternetAddress("lisi@itcast.com"));
//3.5内容
message.setText("你好,已经发送成功!正文....");//简单纯文本邮件
message.saveChanges();//保存邮件(可选)
//4.发送
Transporttrans=session.getTransport();
trans.connect("zhangsan","888");
//发送邮件
trans.sendMessage(message,message.getAllRecipients());
trans.close();
}
}
带图片
/**
*带图片资源的邮件
*@authorJie.Yuan
*
*/
publicclassApp_2SendWithImg{
//初始化参数
privatestaticPropertiesprop;
//发件人
privatestaticInternetAddresssendMan=null;
static{
prop=newProperties();
prop.put("mail.transport.protocol","smtp");//指定协议
prop.put("mail.smtp.host","localhost");//主机stmp.qq.com
prop.put("mail.smtp.port",25);//端口
prop.put("mail.smtp.auth","true");//用户密码认证
prop.put("mail.debug","true");//调试模式
try{
sendMan=newInternetAddress("zhangsan@itcast.com");
}catch(AddressExceptione){
thrownewRuntimeException(e);
}
}
@Test
publicvoidtestSend()throwsException{
//1.创建邮件会话
Sessionsession=Session.getDefaultInstance(prop);
//2.创建邮件对象
MimeMessagemessage=newMimeMessage(session);
//3.设置参数:标题、发件人、收件人、发送时间、内容
message.setSubject("带图片邮件");
message.setSender(sendMan);
message.setRecipient(RecipientType.TO,newInternetAddress("lisi@itcast.com"));
message.setSentDate(newDate());
/***************设置邮件内容:多功能用户邮件(related)*******************/
//4.1构建一个多功能邮件块
MimeMultipartrelated=newMimeMultipart("related");
//4.2构建多功能邮件块内容=左侧文本+右侧图片资源
MimeBodyPartcontent=newMimeBodyPart();
MimeBodyPartresource=newMimeBodyPart();
//设置具体内容:a.资源(图片)
StringfilePath=App_2SendWithImg.class.getResource("8.jpg").getPath();
DataSourceds=newFileDataSource(newFile(filePath));
DataHandlerhandler=newDataHandler(ds);
resource.setDataHandler(handler);
resource.setContentID("8.jpg");//设置资源名称,给外键引用
//设置具体内容:b.文本
content.setContent("<imgsrc='cid:8.jpg'/>好哈哈!","text/html;charset=UTF-8");
related.addBodyPart(content);
related.addBodyPart(resource);
/*******4.3把构建的复杂邮件快,添加到邮件中********/
message.setContent(related);
//5.发送
Transporttrans=session.getTransport();
trans.connect("zhangsan","888");
trans.sendMessage(message,message.getAllRecipients());
trans.close();
}
}
图片+附件
/**
*3.带图片资源以及附件的邮件
*@authorJie.Yuan
*
*/
publicclassApp_3ImgAndAtta{
//初始化参数
privatestaticPropertiesprop;
//发件人
privatestaticInternetAddresssendMan=null;
static{
prop=newProperties();
prop.put("mail.transport.protocol","smtp");//指定协议
prop.put("mail.smtp.host","localhost");//主机stmp.qq.com
prop.put("mail.smtp.port",25);//端口
prop.put("mail.smtp.auth","true");//用户密码认证
prop.put("mail.debug","true");//调试模式
try{
sendMan=newInternetAddress("zhangsan@itcast.com");
}catch(AddressExceptione){
thrownewRuntimeException(e);
}
}
@Test
publicvoidtestSend()throwsException{
//1.创建邮件会话
Sessionsession=Session.getDefaultInstance(prop);
//2.创建邮件对象
MimeMessagemessage=newMimeMessage(session);
//3.设置参数:标题、发件人、收件人、发送时间、内容
message.setSubject("带图片邮件");
message.setSender(sendMan);
message.setRecipient(RecipientType.TO,newInternetAddress("lisi@itcast.com"));
message.setSentDate(newDate());
/*
*带附件(图片)邮件开发
*/
//构建一个总的邮件块
MimeMultipartmixed=newMimeMultipart("mixed");
//--->总邮件快,设置到邮件对象中
message.setContent(mixed);
//左侧:(文本+图片资源)
MimeBodyPartleft=newMimeBodyPart();
//右侧:附件
MimeBodyPartright=newMimeBodyPart();
//设置到总邮件块
mixed.addBodyPart(left);
mixed.addBodyPart(right);
/******附件********/
Stringattr_path=this.getClass().getResource("a.docx").getPath();
DataSourceattr_ds=newFileDataSource(newFile(attr_path));
DataHandlerattr_handler=newDataHandler(attr_ds);
right.setDataHandler(attr_handler);
right.setFileName("a.docx");
/***************设置邮件内容:多功能用户邮件(related)*******************/
//4.1构建一个多功能邮件块
MimeMultipartrelated=newMimeMultipart("related");
//---->设置到总邮件快的左侧中
left.setContent(related);
//4.2构建多功能邮件块内容=左侧文本+右侧图片资源
MimeBodyPartcontent=newMimeBodyPart();
MimeBodyPartresource=newMimeBodyPart();
//设置具体内容:a.资源(图片)
StringfilePath=App_3ImgAndAtta.class.getResource("8.jpg").getPath();
DataSourceds=newFileDataSource(newFile(filePath));
DataHandlerhandler=newDataHandler(ds);
resource.setDataHandler(handler);
resource.setContentID("8.jpg");//设置资源名称,给外键引用
//设置具体内容:b.文本
content.setContent("<imgsrc='cid:8.jpg'/>好哈哈!","text/html;charset=UTF-8");
related.addBodyPart(content);
related.addBodyPart(resource);
//5.发送
Transporttrans=session.getTransport();
trans.connect("zhangsan","888");
trans.sendMessage(message,message.getAllRecipients());
trans.close();
}
}
以上就是本文的全部内容,希望对大家学习java程序设计有所帮助。