最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

javaMail邮件发送功能demo(可发送附件,html)

Java基础 太平洋学习网 浏览 评论

javaMail邮件发送功能主要用于发送邮件给用户,起到提醒或者邮件验证功能,本javaMail发送邮件demo可以发送html,附件等,发送方为126邮件服务器,你也可以使用163,qq邮件服务器。

1:新建一个java项目,在lib中加入mail.jar这个jar包,如果你是maven项目,可以在pom.xml中加入javaMail maven依赖。

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4</version>
</dependency>

2.新建一个类,本人将javamail写在了main函数里,用于简单的演示,整个代码如下,很简单。

//演示javamail发带有附件的邮件
public class Demo3 {

	public static void main(String[] args) throws Exception {
		//1.Session类: 用于建立程序和服务器的连接
		/**
		 * 参数一:配置信息   如:连接的服务器   验证方式
		 * 
		 */
		Properties prop = new Properties();
		//发送邮件的服务器的地址
		prop.setProperty("mail.host", "smtp.126.com");
		//是否需要验证登录
		prop.setProperty("mail.smtp.auth", "true");
		//Authenticator:用于对用户名和密码进行加密
		Session session = Session.getDefaultInstance(prop,new Authenticator() {
				@Override
				protected PasswordAuthentication getPasswordAuthentication() {
					return new PasswordAuthentication("ericxu_12345@126.com","ericxxx");
				}
		});
		
		//开启debug功能:为了查看整个邮件发送的过程
		session.setDebug(true);
		
		//2.MimeMessage类: 封装一封邮件内容
		MimeMessage mail = new MimeMessage(session);
		
		//2.1 发件人
		mail.setFrom(new InternetAddress("ericxu_12345@126.com")); // 和登录的用户名保持一致
		//2.2 收件人
		/**
		 * 参数一:收件类型
		 * 		TO : 发送
		 *      CC:  抄送
		 *      BCC: 密送
		 *      A   ->  B(TO)  -> C(CC) -> D(BCC)
		 *       1)BCD都能收到邮件
		 *       2)B和C互相能看到对方收到邮件,但是B和C看不到D收到邮件
		 */
		mail.setRecipient(RecipientType.TO, new InternetAddress("ericxu_12345@163.com"));
		//2.3 主题
		mail.setSubject("这是javamail的带附件的邮件2");
		
		//创建一个附件: MimeBodyPart对象
		MimeBodyPart bodyPart1 = new MimeBodyPart();
		//添加一个文件
		bodyPart1.attachFile(new File("c:/mm.jpg"));
		
		MimeBodyPart bodyPart2 = new MimeBodyPart();
		//添加一个文件
		bodyPart2.attachFile(new File("c:/employee.xml"));
		
		//有了附件之后,正文也是一个MimeBodyPart
		MimeBodyPart bodyPart3 = new MimeBodyPart();
		//添加html正文
		bodyPart3.setContent("<font color='red'>这是正文</font>", "text/html;charset=utf-8");
		//纯文本正文
		//bodyPart3.setContent("这是邮件的正文内容", "text/plain;charset=utf-8");
		
		//创建一个MimeMultipart对象,用于封装多个附件对象
		MimeMultipart multipart = new MimeMultipart();
		//注意:正文一定是方法第一个!!!!(0代表第一个)
		multipart.addBodyPart(bodyPart3,0);
		multipart.addBodyPart(bodyPart1,1);
		multipart.addBodyPart(bodyPart2,2);
		
		//把MimeMultipart放入MimeMessage
		mail.setContent(multipart);
		
		//3.Transport类:发送一封邮件
		Transport.send(mail);
	}
}

如果你的javaMail邮件发送方为qq或者163,只需要将上面的邮件服务器地址改一下,例如使用qq邮件服务器,就将上面代码中prop.setProperty("mail.host", "smtp.126.com")方法中的"smtp.126.com"改成"smtp.qq.com"就ok了。

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/java/2017/0414/94.html

    与本文相关的文章

    发表我的评论
    取消评论

    表情

    您的回复是我们的动力!

    • 昵称 (必填)

    网友最新评论