使用JavaMail发送邮件乱码的两种解决方法

使用JavaMail发送邮件乱码的两种解决方法

使用JavaMail发送邮件激活码时,邮件的中文显示如下:
无
搜了一个多小时,找到两种解决方法
1.构造MimeMessageHelper时设置编码格式


	@Resource
	private JavaMailSender javaMailSender;
	
	@Test
	public void mimeMailTest() throws MessagingException {
		String email = "[email protected]";
		String mailCode = 123456789;
		// 创建多用途邮件消息对象
		MimeMessage mailMessage = javaMailSender.createMimeMessage();
		// 创建邮件消息助手(参数2:设置为true,表示可以发送超链接、附件)
		MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true, "UTF-8");

		messageHelper.setTo("[email protected]");
		messageHelper.setFrom("[email protected]");
		messageHelper.setSubject("注册提醒");

		String text = "注册成功,点击激活";
		//参数2表示是否以html格式发送.如不设置会发送纯文本
		messageHelper.setText(text, true);

		javaMailSender.send(mailMessage);
	}

2.构造MimeMessageHelper 不设置编码,使用MimeMessage 的setContent()方法时设置

	@Test
	public void mimeMailTest2() throws MessagingException {
		String email = "[email protected]";
		String mailCode = 123456789;
		// 创建多用途邮件消息对象
		MimeMessage mailMessage = javaMailSender.createMimeMessage();
		// 创建邮件消息助手
		MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage);

		messageHelper.setTo("[email protected]");
		messageHelper.setFrom("[email protected]");
		messageHelper.setSubject("注册提醒2");

		String text = "注册成功2,点击激活";
		//参数2:以html格式发送
		mailMessage.setContent(text, "text/html;charset=UTF-8");
		
		javaMailSender.send(mailMessage);

	}

你可能感兴趣的:(使用JavaMail发送邮件乱码的两种解决方法)