使用JAVA代码发送邮件的工具类

使用Java代码发送邮件的工具类:

废话不多说直接上代码:

package org.springblade.utils;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.MultiPartEmail;

import java.io.File;

public class EmailUtil {

	private static final Log log = LogFactory.getLog(EmailUtil.class);

	private static final String MAIL_HOST = "邮箱服务的host(网上可以查到)";
	private static final String MAIL_USERNAME = "你的邮箱地址";
	private static final String MAIL_PASSWORD = "你的邮箱密钥(注意不是你的邮箱密码)";
	private static final String MAIL_FROMNAME = "一般是你的姓名";
	private static final int MAIL_PORT = 587;//邮箱服务的端口号  587是QQ邮箱的端口号

	public static void sendHtmlEmail(String addr, String subject, String htmlMsg) {
		try {
			HtmlEmail email = new HtmlEmail();
			email.setHostName(MAIL_HOST); // 设定smtp服务器
			email.setSmtpPort(MAIL_PORT);
			email.setAuthentication(MAIL_USERNAME, MAIL_PASSWORD); // 设定smtp服务器的认证资料信息
			email.addTo(addr, "reciever"); // 设定收件人
			email.setFrom(MAIL_USERNAME, MAIL_FROMNAME);
			email.setSubject(subject);
			email.setHtmlMsg(htmlMsg);
			email.setCharset("utf-8");
			log.debug("准备给[" + addr + "]发送邮件,主题[" + subject + "]内容[" + htmlMsg + "]");
			email.send();
			log.debug("邮件发送成功,收件人: " + addr + ", 邮件内容: " + htmlMsg);
		} catch (Exception e) {
			log.error("发送邮件给: " + addr + "时出现了异常: " + e.getMessage());
			e.printStackTrace();
		}
	}

	public static void sendMultipartEmail(String[] addrs, String subject, String msg, String... filePath) {
		StringBuffer addressTo = new StringBuffer();
		try {
			MultiPartEmail email = new MultiPartEmail();
			email.setHostName(MAIL_HOST); // 设定smtp服务器
			email.setSmtpPort(MAIL_PORT);
			email.setAuthentication(MAIL_USERNAME, MAIL_PASSWORD); // 设定smtp服务器的认证资料信息
			if (addrs != null && addrs.length > 0) {
				for (String addr : addrs) {
					addressTo.append(addr + ", ");
					email.addTo(addr, "reciever"); // 设定收件人
				}
			}
			email.setFrom(MAIL_USERNAME, MAIL_FROMNAME);
			email.setSubject(subject);
			email.setMsg(msg);
			email.setCharset("utf-8");

			// 加入附件
			if (filePath != null && filePath.length > 0) {
				for (String path : filePath) {
					File f = new File(path);
					EmailAttachment attachment = new EmailAttachment();
					attachment.setPath(path);// 本地文件
					attachment.setDisposition(EmailAttachment.ATTACHMENT);
					attachment.setDescription(f.getName());
					attachment.setName(f.getName());
					email.attach(attachment);
				}
			}

			log.debug("准备给[" + addressTo.toString() + "]发送邮件,主题[" + subject + "]内容[" + msg + "]");
			// 发送邮件
			email.send();
			log.info("邮件发送成功,收件人: " + addressTo.toString() + ", 邮件内容: " + msg);
		} catch (Exception e) {
			log.info("发送邮件给: " + addressTo.toString() + "时出现了异常: " + e.getMessage());
			e.printStackTrace();
		}
	}

	public static void sendMultipartEmail(Object[] addrs, String subject, String msg) {
		StringBuffer addressTo = new StringBuffer();
		try {
			MultiPartEmail email = new MultiPartEmail();
			email.setHostName(MAIL_HOST); // 设定smtp服务器
			email.setSmtpPort(MAIL_PORT);
			email.setAuthentication(MAIL_USERNAME, MAIL_PASSWORD); // 设定smtp服务器的认证资料信息
			if (addrs != null && addrs.length > 0) {
				for (Object addr : addrs) {
					addressTo.append(addr + ", ");
					email.addTo(String.valueOf(addr), "reciever"); // 设定收件人
				}
			}
			email.setFrom(MAIL_USERNAME, MAIL_FROMNAME);
			email.setSubject(subject);
			email.setMsg(msg);
			email.setCharset("utf-8");

			log.debug("准备给[" + addressTo.toString() + "]发送邮件,主题[" + subject + "]内容[" + msg + "]");
			// 发送邮件
			email.send();
			log.info("邮件发送成功,收件人: " + addressTo.toString() + ", 邮件内容: " + msg);
		} catch (Exception e) {
			log.info("发送邮件给: " + addressTo.toString() + "时出现了异常: " + e.getMessage());
			e.printStackTrace();
		}
	}


}

测试demo:

	@GetMapping("/sendEmail")
	@ApiOperationSupport(order = 3)
	@ApiOperation(value = "发送邮件", notes = "发送邮件")
	public R<String> sendEmail() {
		try {
		    //目标邮箱
			String address = "3303298665@qq.com";
			//主题
			String subject = "测试主题!";
			//内容
			String message = "测试内容!";
			EmailUtil.sendHtmlEmail(address, subject, message);
			return R.data("发送成功!");
		} catch (Exception e) {
			e.printStackTrace();
			return R.fail("发送失败!");
		}
	}

以QQ邮箱为例:

	private static final String MAIL_HOST = "smtp.qq.com";
	private static final String MAIL_USERNAME = "xxx@qq.com";
	private static final String MAIL_PASSWORD = "xhgjqsliwidyhbji";
	private static final String MAIL_FROMNAME = "健康管理系统";
	private static final int MAIL_PORT = 587;//邮箱服务的端口号  587是QQ邮箱的端口号

QQ邮箱开启SMTP方法如何授权

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值