溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java郵件亂碼怎么辦

發(fā)布時間:2021-07-13 15:36:43 來源:億速云 閱讀:327 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)java郵件亂碼怎么辦,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

java發(fā)送郵件亂碼解決方法:

//設(shè)置郵件主題 

message.setSubject(MimeUtility.encodeText(mail_subject,MimeUtility.mimeCharset("gb2312"), null)); 

message.setContent(sendmessage, "text/html;charset=gbk"); // 設(shè)置郵件格式 

message.setSentDate(new Date()); // 設(shè)置郵件發(fā)送日期 

//設(shè)置郵件發(fā)件人名稱 

Address address = new InternetAddress(usernames, MimeUtility.encodeText(personalName,MimeUtility.mimeCharset("gb2312"), null));

當(dāng)一段 Text 或者 HTML 通過電子郵件傳送時,發(fā)送的內(nèi)容首先通過一種指定的字符編碼轉(zhuǎn)化成“字節(jié)串”,然后再把“字節(jié)串”通過一種指定的傳輸編碼(Content-Transfer-Encoding)進(jìn)行轉(zhuǎn)化得到另一串“字節(jié)串”。

郵件的標(biāo)題,用了一種更簡短的格式來標(biāo)注“字符編碼”和“傳輸編碼”。

擴(kuò)展內(nèi)容

1.構(gòu)造MimeMessageHelper時設(shè)置編碼格式

	@Resource
	private JavaMailSender javaMailSender;
	
	@Test
	public void mimeMailTest() throws MessagingException {
		String email = "xxx-xxx@163.com";
		String mailCode = 123456789;
		// 創(chuàng)建多用途郵件消息對象
		MimeMessage mailMessage = javaMailSender.createMimeMessage();
		// 創(chuàng)建郵件消息助手(參數(shù)2:設(shè)置為true,表示可以發(fā)送超鏈接、附件)
		MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true, "UTF-8");

		messageHelper.setTo("xxx-xxx@163.com");
		messageHelper.setFrom("xxx-xxx@163.com");
		messageHelper.setSubject("注冊提醒");

		String text = "注冊成功,<a href=\"http://127.0.0.1:8080/userActivate" + "?code=" + mailCode
				+ "&email=" + email + "\">點(diǎn)擊激活</a>";
		//參數(shù)2表示是否以html格式發(fā)送.如不設(shè)置會發(fā)送純文本
		messageHelper.setText(text, true);

		javaMailSender.send(mailMessage);
	}

2.構(gòu)造MimeMessageHelper 不設(shè)置編碼,使用MimeMessage 的setContent()方法時設(shè)置

	@Test
	public void mimeMailTest2() throws MessagingException {
		String email = "xxx-xxx@163.com";
		String mailCode = 123456789;
		// 創(chuàng)建多用途郵件消息對象
		MimeMessage mailMessage = javaMailSender.createMimeMessage();
		// 創(chuàng)建郵件消息助手
		MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage);

		messageHelper.setTo("xxx-xxx@163.com");
		messageHelper.setFrom("xxx-xxx@163.com");
		messageHelper.setSubject("注冊提醒2");

		String text = "注冊成功2,<a href=\"http://127.0.0.1:8080/userActivate" + "?code=" + mailCode
				+ "&email=" + email + "\">點(diǎn)擊激活</a>";
		//參數(shù)2:以html格式發(fā)送
		mailMessage.setContent(text, "text/html;charset=UTF-8");
		
		javaMailSender.send(mailMessage);

	}

關(guān)于“java郵件亂碼怎么辦”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI