`
tiwson
  • 浏览: 330650 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

关于javamail在linux服务器上发送乱码的解决方法,搜了N多资料

阅读更多
不写那么多了,直接把源码放上来吧


public static void send(Email email) {
		try {

			Properties p = new Properties(); // Properties p =
												// System.getProperties();
			p.put("mail.smtp.auth", "true");
			p.put("mail.transport.protocol", "smtp");
			p.put("mail.smtp.host", "你的邮件服务器");
			p.put("mail.smtp.port", "端口");
			// 建立会话
			Session session = Session.getInstance(p);
			Message msg = new MimeMessage(session); // 建立信息

			msg.setFrom(new InternetAddress("发件人邮箱")); // 发件人

			String toList = getMailList(email.getTo());//收件人列表
			new InternetAddress();
			InternetAddress[] iaToList = InternetAddress.parse(toList);

			msg.setRecipients(Message.RecipientType.TO, iaToList); // 收件人

			msg.setSentDate(new Date()); // 发送日期
			BASE64Encoder enc = new BASE64Encoder();
//--------------------以下是重点内容-------------------
			String subject = new String(email.getHead().getBytes("GB18030"),Charset.defaultCharset());
			msg.setSubject("=?GB18030?B?" + enc.encode(subject.getBytes()) + "?="); // 邮件主题
			msg.setContent(email.getContent(), "text/html;charset=GB18030");// 邮件内容

//--------------------结束--------------------------
			// 邮件服务器进行验证
			Transport tran = session.getTransport("smtp");
			tran.connect("邮件服务器地址", "用户名", "密码");
			
			tran.sendMessage(msg, msg.getAllRecipients()); // 发送
			//System.out.println("邮件发送成功");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics