HtmlEmail实现简单发送邮件
一般发送邮件的话系统项目中可能会用到,像一些通知信息自动发送等,会用到发送邮件的情况,发送邮件有好多种,包括设置各种格式,添加图片附件等,当然今天我们先看一下怎么实现发送成功。
工欲善其事必先利其器,开始之前,一定要引入依赖 ,不然程序会报错
引入pom.xml文件
<!--发送邮件引入jar包--> <dependency > <groupId >javax.mail </groupId > <artifactId >mail </artifactId > <version >1.4.6 </version > </dependency > <dependency > <groupId >com.sun.mail </groupId > <artifactId >javax.mail </artifactId > <version >1.5.5 </version > </dependency >
引入依赖之后,我们就可以写发送邮件的测试类了
import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; /** * @author pillar * @date 2019-05-10 */ public class testMail { public static void main(String[] args) { String msg="testMail: hello word"; testMail.sendMailMessage(msg); } /** * 发送邮件实现类 * @param msg */ public static void sendMailMessage(String msg) { try { //邮箱服务器地址如:mail.qq.com String hostName ="139.159.XXX"; // 帐号与密码 String userName ="用户名"; String password = "密码"; // 发件人 String fromAddress ="用户名@XXX.com"; // 发件人姓名 String fromName = "pillarzhang"; HtmlEmail email=new HtmlEmail(); email.setHostName(hostName);// 设置smtp服务器 email.setAuthentication(userName, password);// 设置授权信息 email.setCharset("utf-8"); email.setFrom(fromAddress, fromName, "utf-8");// 设置发件人信息 email.setSubject("testMail");// 设置主题 email.setHtmlMsg(msg);// 设置邮件内容 email.addTo("1208699589@qq.com", "pillarzhang", "utf-8"); System.err.println(email.getSmtpPort()); System.err.println(email.getHostName()); String res = email.send();// 发送邮件 System.err.println(res); } catch (EmailException e) { System.err.println("邮件发送失败"); e.printStackTrace(); } } }
如果要用qq,163等其他邮箱做服务器测试注意25端口和授权码的设置 否则可能会提示发送失败哦
这里我用的是我本地邮箱服务器地址,启动测试执行之后,qq邮箱就会收到邮件了!
邮件可以正常发送邮件了,当然如有不当之处请多多指正,一起交流学习进步!