public class Mail implements Serializable { /** * 序列号 */ private static final long serialVersionUID = -3562218214168975242L; /** * 邮件编码 */ public static final String ENCODEING = "UTF-8"; /** * 服务器地址 */ private String host; /** * 服务器端口号 */ private String portNumber; /** * 发件人的邮箱 */ private String sender; /** * 收件人的邮箱 */ private String receiver; /** * 发件人昵称 */ private String name; /** * 账号 */ private String username; /** * 密码 */ private String password; /** * 主题 */ private String subject; /** * 信息(支持HTML) */ private String message; }
记得生成getter和setter方法
2. 其次是MailUtil工具类
import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; public class MailUtil { public boolean send(Mail mail) { //发送email对象 HtmlEmail email = new HtmlEmail(); try { //这里是SMTP发送服务器的名字 email.setHostName(mail.getHost()); //端口号不为空时,用户自定义的端口号为SMTP发送服务器端口号 if (!"".equals(mail.getPortNumber())) { email.setSSLOnConnect(true); email.setSslSmtpPort(mail.getPortNumber()); } //字符编码集的设置 email.setCharset(Mail.ENCODEING); //收件人的邮箱 email.addTo(mail.getReceiver()); //发送人的邮箱 email.setFrom(mail.getSender(), mail.getName()); // 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码 email.setAuthentication(mail.getUsername(), mail.getPassword()); // 要发送的邮件主题 email.setSubject(mail.getSubject()); // 要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签 email.setMsg(mail.getMessage()); // 发送 email.send(); return true; } catch (EmailException e) { e.printStackTrace(); return false; } }
这个类里最上面两行导入的包需要commons-email.jar的jar包
另外写这个功能还需要mail.jar的jar包
本人用maven创建的项目就直接到依赖包网站直接导入这两个jar包了
3.调用工具类发邮件
public void test() { Mail mail = new Mail(); mail.setHost("smtp.qq.com"); //设置邮件服务器,如果不用QQ邮箱的,自己找找看相关的 mail.setPortNumber("465"); //设置邮件服务器端口号,默认25 mail.setSender("发送人的邮箱,这里用qq"); //发送人 mail.setName("xx公司"); //发送人昵称 mail.setReceiver("接收人的邮箱,可以随便写"); //接收人 mail.setUsername("登陆账号"); //登录账号,一般都是和邮箱名一样 mail.setPassword("qq邮箱授权码"); //QQ邮箱登录第三方客户端时,密码框请输入“授权码”进行验证。其他的密码具体查看邮件服务器的说明 //发送邮件 // 这里可以写一些邮件内容或者计算功能 //定义邮件标题 String title = "标题 " mail.setSubject(title); //定义邮件内容 StringBuilder emailContent = new StringBuilder(); //以下随便改 emailContent.append("内容<br/>"); emailContent.append("..........."); mail.setMessage(String.valueOf(emailContent)); if (new MailUtil().send(mail)) { System.out.println("发送成功"); } else { System.out.println("发送失败"); } }
这样子,邮件发送功能就完成了!
可喜可贺,可喜可贺
原文:https://www.cnblogs.com/mike-JP/p/11368499.html