`

邮件功能

 
阅读更多

1、要添加2个jar配置,注意,前者是api,所以后面那个也要添加

 

		<dependency>
		    <groupId>javax.mail</groupId>
		    <artifactId>javax.mail-api</artifactId>
		    <version>1.6.1</version>
		</dependency>
		<dependency>
		    <groupId>com.sun.mail</groupId>
		    <artifactId>javax.mail</artifactId>
		    <version>1.6.1</version>
		</dependency>

 2、具体的实现

	public static String getExceptionMessage(Exception e) {
		StringBuilder msg = new StringBuilder();
		msg.append(e.toString());
		StackTraceElement[] stackTrace = e.getStackTrace();
		for(StackTraceElement s:stackTrace) {
			msg.append("\n\t");
			msg.append(s.toString());
		}
		return msg.toString();
	}

	public static void sendMail(String fromUser, String pwd, String toUser, String title, String content) {
		try {
			String host = "mail.XXX.XX";
			Properties prop = new Properties();
			prop.setProperty("mail.host", host);
			prop.setProperty("mail.transport.protocol", "smtp");
			prop.setProperty("mail.smtp.auth", "true");
			// 使用JavaMail发送邮件的5个步骤
			// 1、创建session
			Session session = Session.getInstance(prop);
			// 开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
			session.setDebug(true);
			// 2、通过session得到transport对象
			Transport ts = session.getTransport();
			// 3、使用邮箱的用户名和密码连上邮件服务器,发送邮件时,发件人需要提交邮箱的用户名和密码给smtp服务器,用户名和密码都通过验证之后才能够正常发送邮件给收件人。
			ts.connect(host, fromUser, pwd);
			// 4、创建邮件
			Message message = createSimpleMail(fromUser, toUser, session, title, content);
			// 5、发送邮件
			ts.sendMessage(message, message.getAllRecipients());
			ts.close();
		} catch (Exception e) {
			logger.error("sendMail fail title={}msg={}", title, content, e);
		}
	}

	/**
	 * @Method: createSimpleMail
	 * @Description: 创建一封只包含文本的邮件
	 * @param session
	 * @return
	 * @throws Exception
	 */
	public static MimeMessage createSimpleMail(String fromUser, String toUser, Session session, String title, String content) throws Exception {
		// 创建邮件对象
		MimeMessage message = new MimeMessage(session);
		// 指明邮件的发件人
		message.setFrom(new InternetAddress(fromUser));
		// 指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
//		message.setRecipient(Message.RecipientType.TO, new InternetAddress(toUser));
		message.setRecipients(Message.RecipientType.TO, getAddress(toUser));
		// 邮件的标题
		message.setSubject(title);
		// 邮件的文本内容
		message.setContent(content, "text/html;charset=UTF-8");
		// 返回创建好的邮件对象
		return message;
	}

	private static Address[] getAddress(String toUser) throws AddressException {
		if (toUser.contains(";")) {
			String[] split = toUser.split(";");
			Address[] ret = new Address[split.length];
			for (int i = 0; i < split.length; i++) {
				ret[i] = new InternetAddress(split[i]);
			}
			return ret;
		} else {
			return new Address[] { new InternetAddress(toUser) };
		}
	}

 

 

0
0
分享到:
评论
1 楼 masuweng 2018-07-27  
       邮件功能以后用的着

相关推荐

Global site tag (gtag.js) - Google Analytics