java实现发送email小案例
这是一个小的发送emai的案例,供大家参考,具体内容如下
代码里面放了很多注解,这里多说无益。
发送邮件实体类:
packagecom.yqx.emaildemo.demo; importlombok.Data; importorg.apache.commons.mail.EmailAttachment; importjava.util.List; /** *发送邮件实体类 * *@authorYangChingyu-k *@date2019/10/1014:59 */ @Data publicclassMailInfo{ /** *收件人 */ privateListtoAddress=null; /** *抄送人地址 */ privateList ccAddress=null; /** *密送人 */ privateList bccAddress=null; /** *附件信息 */ privateList emailAttachments=null; /** *邮件主题 */ privateStringsubject; /** *邮件文本内容 */ privateStringcontent; publicvoidaddToAddress(StringtoAddress){ this.toAddress.add(toAddress); } publicvoidaddToAddress(List toAddress){ this.toAddress.addAll(toAddress); } publicvoidaddCcAddress(List ccAddress){ if(!ccAddress.isEmpty()){ this.ccAddress.addAll(ccAddress); } } }
工具类:
packagecom.yqx.emaildemo.demo; importorg.apache.commons.mail.EmailAttachment; importorg.apache.commons.mail.HtmlEmail; importjava.text.SimpleDateFormat; importjava.util.Date; importjava.util.List; /** *发送邮件辅助工具类 * *@authorYangChingyu-k *@date2019/10/1015:12 */ publicclassMailUtil{ /** *邮箱 */ privatestaticStringmailServerHost="smtp.qq.com"; privatestaticStringmailSenderAddress="xxx@qq.com"; privatestaticStringmailSenderNick="YangChingyu-k"; privatestaticStringmailSenderUserName="xxx@qq.com"; //这里的密码是开启服务之后的授权码 privatestaticStringmailSenderPassWord="xxx"; /** *发送邮件(Html格式,支持附件) * *@parammailInfo */ publicstaticvoidsendMail(MailInfomailInfo){ try{ //利用jar包中提供的HtmlEmail类 HtmlEmailemail=newHtmlEmail(); //配置信息 //这里用的是QQ邮箱的地址,不同的邮箱采用的地址不同,官方有说明 email.setHostName(mailServerHost); //发送的地址,发送者昵称 email.setFrom(mailSenderAddress,mailSenderNick); //用户名,密码(这里的密码不是登录密码,而是开启POP3/SMTP服务之后获取的授权密码) email.setAuthentication(mailSenderUserName,mailSenderPassWord); //编码 email.setCharset("UTF-8"); //主题 email.setSubject(mailInfo.getSubject()); //内容 email.setHtmlMsg(mailInfo.getContent()); //添加附件 ListemailAttachments=mailInfo.getEmailAttachments(); if(!emailAttachments.isEmpty()){ for(inti=0;i toAddress=mailInfo.getToAddress(); if(!toAddress.isEmpty()){ for(inti=0;i ccAddress=mailInfo.getCcAddress(); if(!ccAddress.isEmpty()){ for(inti=0;i bccAddress=mailInfo.getBccAddress(); if(!bccAddress.isEmpty()){ for(inti=0;i 测试main方法:
packagecom.yqx.emaildemo.demo; importorg.apache.commons.mail.EmailAttachment; importjava.util.ArrayList; importjava.util.List; /** *测试:发送邮件(先new出邮件实体类,赋值之后,再利用工具类方法进行发送操作) **注重点: *1)邮箱需要开启POP3/SMTP服务 *2)使用的邮箱密码不是登录时的密码,而是开启以上服务之后的授权码 *3)邮箱地址必须是正确存在的,否则将会被退信处理 *
* *@authorYangChingyu-k *@date2019/10/1015:53 */ publicclassMainTest{ publicstaticvoidmain(String[]args){ MailInfomailInfo=newMailInfo(); //收件人 ListtoList=newArrayList<>(); toList.add("xxx.com"); //抄送人 List ccList=newArrayList<>(); ccList.add("xxx@qq.com"); //密送人 List bccList=newArrayList<>(); bccList.add("xxx@qq.com"); //添加附件 EmailAttachmentemailAttachment=newEmailAttachment(); //文件全路径 emailAttachment.setPath("C:/Users/YangChingyu-k/Desktop/lemon.txt"); //附件:文件全名(文件名+.格式) emailAttachment.setName("这是一个测试的附件.txt"); //多个附件 List emailAttachments=newArrayList<>(); emailAttachments.add(emailAttachment); mailInfo.setEmailAttachments(emailAttachments); //收件人 mailInfo.setToAddress(toList); //抄送人 mailInfo.setCcAddress(ccList); //密送人 mailInfo.setBccAddress(bccList); //主题 mailInfo.setSubject("Thisisaobject"); //内容 mailInfo.setContent(" 这是一段测试的内容~
"); //调用工具类方法进行发送 MailUtil.sendMail(mailInfo); } }我觉得注释应该写得很清楚了吧,这是作为一个demo来写的,分享一下,在写的时候一直遇到找不到地址之类的,或者服务没开之类的报错,这里都写了注重点的东西,这是第一次在代码里面一直写很多注释。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。