博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javamail实现发送接收邮件Demo
阅读量:6574 次
发布时间:2019-06-24

本文共 3450 字,大约阅读时间需要 11 分钟。

hot3.png

项目要引入mail.jar包。发送文字邮件没什么可具体说的,直接看Demo。有两种方式实现,一种支持html,另一种不支持。还简单实现了添加图片附件。比较复杂的是接收邮件,特别是QQ邮箱,由于腾讯邮箱的安全机制,必须在QQ邮箱内设置开启STMP、POP等协议权限,过后会研究实现这个功能,再作补充

import java.io.IOException;import java.util.Properties;import javax.mail.Authenticator;import javax.mail.BodyPart;import javax.mail.Folder;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Store;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMessage.RecipientType;import javax.mail.internet.MimeMultipart;public class SendMailDemo {		public static void main(String[] args) throws MessagingException, IOException {						/* ****************      发送邮件        *************** */		final Properties properties = System.getProperties();		properties.put("mail.smtp.auth", "true");		properties.put("mail.smtp.host", "smtp.126.com");//host的协议根据自己的邮箱决定		properties.put("mail.user", "邮箱帐号@126.com");		properties.put("mail.password", "邮箱密码");				//认证信息		Authenticator authenticator = new Authenticator() {			@Override			protected PasswordAuthentication getPasswordAuthentication(){				String account = properties.getProperty("mail.user");				String password = properties.getProperty("mail.password");				return new PasswordAuthentication(account, password);			}		};				//获取邮件session		Session session = Session.getInstance(properties, authenticator);		MimeMessage mimeMessage = new MimeMessage(session);				//发送人		InternetAddress from = new InternetAddress(properties.getProperty("mail.user"));		mimeMessage.setFrom(from);		//接收人		InternetAddress accept = new InternetAddress("接收邮箱帐号@qq.com");		/**		 * Type参数说明		 * Message.RecipientType.TO 收件人		 * Message.RecipientType.CC 抄送		 * Message.RecipientType.BCC 密送		 */		mimeMessage.setRecipient(RecipientType.BCC, accept);		//主题		mimeMessage.setSubject("this is a test mail to Lin");				//设置正文方式一:直接添加,支持html		//mimeMessage.setContent("请访问我们的官网", "text/html;charset=utf-8");				//设置正文方式二:multipart,支持但是不支持html(可添加附件)		Multipart multipart = new MimeMultipart();				BodyPart messageBodyPart = new MimeBodyPart();		messageBodyPart.setText("请访问我们的官网");		multipart.addBodyPart(messageBodyPart);				//添加附件		/*messageBodyPart = new MimeBodyPart();		String filename = "G:/MyImages/海贼王5.jpeg";		DataSource source = new FileDataSource(filename);		messageBodyPart.setDataHandler(new DataHandler(source));		messageBodyPart.setFileName(filename);		multipart.addBodyPart(messageBodyPart);*/		mimeMessage.setContent(multipart);		//发送邮件		Transport.send(mimeMessage);						/* ****************      接收邮件        *************** */		final Properties recevieprop = System.getProperties();		recevieprop.put("mail.pop3.host", "pop.126.com");		recevieprop.put("mail.user", "邮箱帐号@126.com");		recevieprop.put("mail.password", "邮箱密码");		//recevieprop.put("mail.pop3.ssl.enable", "true");//QQ邮箱需要设置ssl				Store store = session.getStore("pop3");		store.connect(recevieprop.getProperty("mail.pop3.host"), recevieprop.getProperty("mail.user"), recevieprop.getProperty("mail.password"));				Folder folder = store.getFolder("INBOX");		folder.open(Folder.READ_ONLY);   		//int size = folder.getMessageCount();		Message[] messages = folder.getMessages();		System.out.println(messages.length);	}}

 

转载于:https://my.oschina.net/u/2428684/blog/687650

你可能感兴趣的文章
[翻译] AnchoredFloatView
查看>>
zookeeper分布式锁避免羊群效应(Herd Effect)
查看>>
虚拟化平台cloudstack(7)——新版本的调试
查看>>
Struts2框架学习之一:Hello World程序
查看>>
使用Java反射(Reflect)、自定义注解(Customer Annotation)生成简单SQL语句
查看>>
【项目篇】Android团队项目开发之统一代码规范
查看>>
一次数据库上云迁移性能下降的排查
查看>>
设计模式系列之九:职责链模式
查看>>
基于命令行编译打包phonegap for android应用
查看>>
Increasing the OpLog Size in MongoDB(don't need full resync)
查看>>
【MyBatis框架】SqlMapConfigl配置文件之常用的setting设置
查看>>
Oracle如何根据SQL_TEXT生成SQL_ID
查看>>
【Ajax技术】JQuery的应用与高级调试技巧
查看>>
mysql atlas 实现读写分离分担数据库压力
查看>>
掘金翻译计划 GitHub Star 破3千--终于等到你
查看>>
自定义圆环图表
查看>>
爬虫数据库一些简单的设计逻辑
查看>>
react native 处理iOS和安卓系统文字
查看>>
[北京昌平] 企名片寻找合适的伙伴,一起做数据,让数据不再难找难应用,做全球企业数据服务商...
查看>>
设计师学习HTML/CSS之路-08
查看>>