今天开发过程中遇到降价通知的问题,价格下降了则发送email到指定邮箱。顺便学习下java如何进行简单的邮件收发。
sun公司提供的 java mail api能够很好的解决这个问题,下面是具体的思路与代码。
1、发邮件:
主要分为以下四个步骤:
a、创建收发邮件session(创建时可以使用java.util.properties类进行各类参数的写入,并使用Authencator类进行邮箱校验);
b、由session对象创建mimeMessage邮件;
c、由session对象创建邮件发送对象Transport;
d、有发送对象发送邮件并关闭transport;
代码如下:
public class MailInit {
/**
* 初始化邮件收发Session
* @author zhanghao
* 20150327
* */
public static Session init(String host,final String username,final String password){
//初始化邮件相关配置信息
Properties properties = new Properties();
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.host", host);
properties.setProperty("mail.transport.protocol", "smtp"); //校验有关?
properties.setProperty("mail.store.protocol", "pop3"); //收邮件
//完成邮箱用户名、密码校验
Authenticator authenticator = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(username, password);
}
};
//创建收发邮件Session
Session session = Session.getInstance(properties, authenticator);
return session;
}
/**
* 邮件发送(单人)
* */
public void sendSingle(String subject,String contect,String username,String password,InternetAddress address){
String host = MailInit.getHostByUserName(username);
Session session =MailInit.init(host, username, password);
//创建mime邮件
MimeMessage message = new MimeMessage(session);
try {
//设置发件人
message.setFrom(new InternetAddress(username));
//设置收件人
message.addRecipient(Message.RecipientType.TO, address);
//设置主题
message.setSubject("邮件主题");
//设置内容
message.setContent(contect,"text/html;charset=utf-8");
//发送邮件
Transport.send(message);
logger.info("邮件发送成功!!");
} catch (MessagingException e) {
String msg = "邮件发送失败!!";
logger.error(msg);
throw new RuntimeException(msg);
}
}
/**
* 邮件群发
* */
public void sendGroup(String subject,String contect,String username,String password,InternetAddress[] addressGroup){
String host = MailInit.getHostByUserName(username);
Session session =MailInit.init(host, username, password);
//创建mime邮件
MimeMessage message = new MimeMessage(session);
try {
//设置发件人
message.setFrom(new InternetAddress(username));
//设置收件人
message.addRecipients(RecipientType.TO, addressGroup);
//设置主题
message.setSubject("邮件主题");
//设置内容
message.setContent(contect,"text/html;charset=utf-8");
//发送邮件
Transport.send(message);
} catch (MessagingException e) {
String msg = "邮件发送失败!!";
logger.error(msg);
throw new RuntimeException(msg);
}
}
2、收邮件主要分为以下几个步骤:
a、创建收发邮件session(创建时可以使用java.util.properties类进行各类参数的写入,并使用Authencator类进行邮箱校验);
b、由session对象创建store对象连接邮箱;
c、由store对象创建Folder文件夹(注:此时创建完成之后需要使用open方法打开文件夹);
d、Folder的实例调用getMessage方法 返回Message数组,获取邮件内容。
代码如下:
public void receiveMail(String username,String password){
String host = MailInit.getPop3ByUserName(username);
Session session =MailInit.init(host, username, password);
//创建store
Store store;
try {
store = session.getStore();
store.connect(host,110,username,password);
//连接 完成后打开Folder
Folder folder = store.getFolder("INBOX"); //INBOX是POP3唯一可以使用的文件夹。如果使用IMAP,还可以用其它的文件夹。
folder.open(Folder.READ_ONLY);
Message[] messages = folder.getMessages();
for (Message message : messages) {
System.out.println(message.getSubject());
}
logger.info("接收邮件成功!!");
} catch (MessagingException e) {
String msg = "接收邮件失败!!";
logger.error(msg);
throw new RuntimeException(msg);
}
}
完整代码下载地址:https://github.com/wasapii/JavaMailDemo/
分享到:
相关推荐
Android系统使用JAVA MAIL进行邮件收发源码及使用到的LIB包! 使用JAVA MAIL实现非Gmail邮件收发!
基于Java_Mail的电子邮件收发系统
Java毕业设计源码-基于Java mail的邮件收发系统(系统+开题报告+任务书+文献综述+答辩PPT)(IT计算机)Java毕业设计源码-基于Java mail的邮件收发系统(系统+开题报告+任务书+文献综述+答辩PPT)(IT计算机)Java...
基于Javamail的邮件收发系统的设计与实现项目是一个基于Java语言开发的邮件收发系统,主要使用Javamail和JavaSMTP等技术实现邮件的收发和管理。该系统主要适用于需要频繁发送邮件的机构或个人,提供优质的邮件服务和...
基于B/S的邮件系统客户端软件,系统全部使用java编写,Web页面使用EasyJWeb框架开发,主要通过调用java mail实现邮件的收发。 基于B/S的邮件系统客户端软件,系统全部使用java编写,Web页面使用EasyJWeb框架开发,主要通过...
java实现的邮件收发系统,用swing开发了界面
基于Java-Mail的电子邮件收发系统毕业设计
基于Java Mail的电子邮件收发系统的设计与实现毕业论文.doc
课程作业,分享给大家。包括邮件收发。使用javax.mail
java mail 收发电子邮件 进行邮箱验证 源码 可以直接运行 使用前务必看一下readme的内容 里面说明了包冲突的解决方法
电子邮件的研究也存在着以下的问题: (1) Unix式的平台 在Unix平台下以Sendmail的资格最老,但是由于Unix系统是开发源代码的,所以导致Sendmail有不少代码缺陷和漏洞,如有些代码缺陷可以让攻击者远程地利用红帽子...
java mail,java发送邮件,java收发邮件,简单易用,容易上手
java mail 收发邮件Demo源码,可以发送和接收附件,在接收邮件时解决了乱码问题
java邮件收发系统源码 java邮件收发系统源码
java邮件收发 java邮件收发 java邮件收发
Java驱动包,mail ,发邮件,文件说明 Java驱动包,mail ,发邮件,文件说明 Java驱动包,mail ,发邮件,文件说明 Java驱动包,mail ,发邮件,文件说明 Java驱动包,mail ,发邮件,文件说明 Java驱动包,mail ,发邮件,文件说明 ...
mail.jar,java收发邮件jar包,没有会报错