`
fred_张浩
  • 浏览: 32185 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用java mail进行简单的邮件收发

阅读更多
今天开发过程中遇到降价通知的问题,价格下降了则发送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/

分享到:
评论

相关推荐

    基于Java_Mail的电子邮件收发系统

    基于Java_Mail的电子邮件收发系统是指使用Java_Mail API来实现电子邮件的发送和接收的系统。 Java_Mail是Java平台上的一种邮件处理API,它提供了一个统一的接口来访问各种类型的邮件服务器。 1.1 研究目的和意义 ...

    Android系统使用JAVA MAIL进行邮件收发源码及使用到的LIB包

    总的来说,通过理解和应用Java Mail API,开发者可以在Android应用中实现高效、可靠的邮件收发功能,不仅限于Gmail,还包括其他邮件服务提供商。提供的源码文件`MailSender.java`应该包含了实现这一功能的具体代码,...

    基于Java-Mail的电子邮件收发系统毕业设计.doc

    "基于Java-Mail的电子邮件收发系统毕业设计" 本文主要介绍了基于Java-Mail的电子邮件收发系统的设计和实现,涵盖了系统的需求分析、总体设计、实现细节等方面。 Java-Mail简介 Java-Mail是Java平台下的邮件处理...

    基于Java的mail的邮件收发系统

    电子邮件的研究也存在着以下的问题: (1) Unix式的平台 在Unix平台下以Sendmail的资格最老,但是由于Unix系统是开发源代码的,所以导致Sendmail有不少代码缺陷和漏洞,如有些代码缺陷可以让攻击者远程地利用红帽子...

    Java毕业设计源码-基于Java mail的邮件收发系统(系统+开题报告+任务书+文献综述+答辩PPT)(IT计算机)

    Java毕业设计源码-基于Java mail的邮件收发系统(系统+开题报告+任务书+文献综述+答辩PPT)(IT计算机)Java毕业设计源码-基于Java mail的邮件收发系统(系统+开题报告+任务书+文献综述+答辩PPT)(IT计算机)Java...

    java邮件收发

    在本教程中,我们将深入探讨如何使用JavaMail API进行邮件收发。 首先,我们需要理解JavaMail API的核心组件。`Session`对象是整个邮件通信的基础,它代表了与邮件服务器的会话。我们可以通过`Properties`对象设置...

    基于Java 的mail的邮件收发系统源码

    基于Javamail的邮件收发系统的设计与实现项目是一个基于Java语言开发的邮件收发系统,主要使用Javamail和JavaSMTP等技术实现邮件的收发和管理。该系统主要适用于需要频繁发送邮件的机构或个人,提供优质的邮件服务和...

    基于B/S的邮件系统客户端软件,系统全部使用java编写,Web页面使用EasyJWeb框架开发,主要通过调用java mail

    基于B/S的邮件系统客户端软件,系统全部使用java编写,Web页面使用EasyJWeb框架开发,主要通过调用java mail实现邮件的收发。 基于B/S的邮件系统客户端软件,系统全部使用java编写,Web页面使用EasyJWeb框架开发,主要通过...

    java邮件收发客户端

    java实现的邮件收发系统,用swing开发了界面

    基于Java实现mail的邮件收发系统

    邮件协议: 使用Java Mail API实现各种邮件协议的接收和发送。 邮件服务器配置: 需要配置正确的邮件服务器信息,包括SMTP服务器和POP3/IMAP服务器。 界面设计: 实现用户友好的界面设计,包括邮件列表展示、邮件...

    基于java的邮件收发Java源码

    本资源“基于java的邮件收发Java源码”提供了实现邮件收发功能的Java代码示例,这对于开发者来说是非常有价值的参考资料。下面将详细阐述Java邮件收发的核心知识点。 1. JavaMail API:JavaMail API是Java平台上的...

    java收发邮件完整版

    Java邮件收发是Java开发中常见的一项功能,主要用于企业级应用、自动化测试或者日常的数据通信。这个"java收发邮件完整版"项目提供了一个完整的Java邮件发送和接收的解决方案,确保用户可以顺利地通过编程方式处理...

    java mail 收发电子邮件 邮箱验证 源码

    在提供的源码中,可能会包含一个示例程序,演示如何使用Java Mail发送和接收邮件,以及进行邮箱验证。在使用前,注意阅读`readme`文件,以了解如何解决可能出现的包冲突问题。可能需要引入额外的依赖,如`javax.mail...

    使用java简单实现基于smtp协议的邮件收发

    总之,使用 Java 和 SMTP 协议实现邮件收发是一个多步骤的过程,涉及到配置 SMTP 服务器、创建和设置邮件对象、以及发送和接收操作。记得根据实际的邮箱服务商进行适配,以确保代码的兼容性和有效性。

    java mail 收发邮件Demo源码

    这个"java mail 收发邮件Demo源码"提供了一个实际应用示例,可以帮助我们理解如何使用Java Mail API实现邮件的收发以及处理附件和编码问题。 1. **Java Mail API简介** Java Mail API 是由Java Community Process ...

    基于Java Mail的电子邮件收发系统的设计与实现毕业论文.doc

    基于Java Mail的电子邮件收发系统的设计与实现毕业论文.doc

    内部简易邮件收发功能java实现

    标题“内部简易邮件收发功能java实现”表明我们要探讨的是如何使用Java编程语言来构建一个简单的电子邮件系统。这个系统可能包含发送和接收邮件的基本功能,适用于小型项目或内部通信需求。 描述中的链接指向了一个...

    java邮件收发系统

    Java邮件收发系统是利用Java编程语言实现的一种用于发送和接收电子邮件的应用程序。在Java中,我们可以使用JavaMail API来处理邮件的收发任务。JavaMail API是一个开源库,提供了丰富的接口和类,使得开发者能够方便...

Global site tag (gtag.js) - Google Analytics