工具类---发送邮件工具类

项目中导入发送邮件的依赖坐标

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

配置文件中配置发送邮件的邮箱信息

#邮箱服务器(此处为QQ邮箱) 
emial_service=smtp.qq.com
#发送邮件的邮箱账号
[email protected]
#发送邮件的邮箱授权码(需要在邮箱设置开启并获取授权码)
emial_password=XXXXXXXXXXXXXX

读取配置文件配置的工具类ConfigReaderUtil

public class ConfigReaderUtil {
  
	public ConfigReaderUtil(){}
	private static Properties props = new Properties(); 
	static{
		try {
                        //加载配置文件,需要手动指定配置文件
			props.load(new InputStreamReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("application.properties"),"UTF-8"));		
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	/*根据key获取value*/
	public static String getValue(String key){
		return props.getProperty(key).trim();
	}
}

发送邮件工具类

public class EmailUtil {

	
	public static String senderEmailAccount = ConfigReaderUtil.getValue("emial_account"); 		// 发件人邮箱账号
	public static String senderEmailPassword = ConfigReaderUtil.getValue("emial_password"); 	// 发件人邮箱授权码
	public static String senderEmailSMTPHost = ConfigReaderUtil.getValue("emial_service"); 		// 邮箱服务器

	
	
	/**
	 * 
	 * DESC : 发送邮件(邮件正文)
	 * 	receiveMailAccount 	接收者邮箱账号
	 * 	subject				邮件主题
	 * 	emilContent			邮件正文内容(支持HTML)
	 * 
	 */
	public static void sendMail(String receiveMailAccount, String subject, String emilContent) throws Exception {
		MimeMultipart mimeMultipart = new MimeMultipart();			
		
		/*添加邮件正文*/
		MimeBodyPart contentPart = new MimeBodyPart();
		contentPart.setText(emilContent);
		contentPart.setHeader("Content-Type", "text/html; charset=UTF-8");	
		mimeMultipart.addBodyPart(contentPart);
		
		String sender = "";
		Properties props = new Properties();
		props.setProperty("mail.transport.protocol", "smtp");							//设置传输协议
		props.setProperty("mail.smtp.host", senderEmailSMTPHost); 						//设置发件人的SMTP服务器地址
		props.setProperty("mail.smtp.auth", "true");									//设置用户的认证方式
		Session session = Session.getDefaultInstance(props);
		session.setDebug(true);
		MimeMessage message = new MimeMessage(session);
		message.setFrom(new InternetAddress(senderEmailAccount, sender,"UTF-8"));		// 邮箱账号
		message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(
				receiveMailAccount, "", "UTF-8"));
		message.setSubject(subject, "UTF-8");
		message.setContent(mimeMultipart);
		message.setSentDate(new Date());
		message.saveChanges();
		Transport transport = session.getTransport();
		transport.connect(senderEmailAccount, senderEmailPassword); 					// 登录邮箱
		transport.sendMessage(message, message.getAllRecipients());
		transport.close();
	}
	
	
	
	/**
	 * 
	 * DESC : 发送邮件(正文+包含附件),如果附件不存在或路径错误,则邮件中不会显示附件
	 *     receiveMailAccount    接收者邮箱账号
	 * 	   subject		                  邮件主题
	 * 	   emilContent			  邮件正文内容(支持HTML)
	 * 	   appendixURL	                  附件路径
	 * 
	 */
	public static void sendMailAndAppendix(String receiveMailAccount, String subject, String emilContent,String appendixURL) throws Exception {
		
		MimeMultipart mimeMultipart = new MimeMultipart();	
		
		/* 添加邮件正文 */
		MimeBodyPart contentPart = new MimeBodyPart();
		contentPart.setText(emilContent);
		contentPart.setHeader("Content-Type", "text/html; charset=UTF-8");
		mimeMultipart.addBodyPart(contentPart);
		
		/* 添加附件 */
		File file = new File(appendixURL);
		if(file.exists()){
			String fileName = MimeUtility.encodeWord(file.getName());	//文件存在则获取文件名并进行乱码处理
			MimeBodyPart appendix = new MimeBodyPart();
		    appendix.setDataHandler(new DataHandler(new FileDataSource(appendixURL)));
		    appendix.setHeader("Content-Type", "text/html; charset=UTF-8");
		    appendix.setFileName(fileName);								//设置附件文件名(和原文件名一致)
		    mimeMultipart.addBodyPart(appendix);
		}else{
			System.out.println("附件不存在或路径错误!");
		}
		
		
		String sender = "";
		Properties props = new Properties();
		props.setProperty("mail.transport.protocol", "smtp");							//设置传输协议
		props.setProperty("mail.smtp.host", senderEmailSMTPHost); 						//设置发件人的SMTP服务器地址
		props.setProperty("mail.smtp.auth", "true");									//设置用户的认证方式
		Session session = Session.getDefaultInstance(props);
		session.setDebug(true);
		MimeMessage message = new MimeMessage(session);
		message.setFrom(new InternetAddress(senderEmailAccount, sender,"UTF-8"));		// 邮箱账号
		message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMailAccount, "", "UTF-8"));
		message.setSubject(subject, "UTF-8");
		message.setContent(mimeMultipart);
		message.setSentDate(new Date());
		message.saveChanges();
		Transport transport = session.getTransport();
		transport.connect(senderEmailAccount, senderEmailPassword); 					// 登录邮箱
		transport.sendMessage(message, message.getAllRecipients());
		transport.close();
	}
}
发布了62 篇原创文章 · 获赞 25 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_39115469/article/details/104563032