how2j.cn

下载区
文件名 文件大小
hutool.rar 129k
使用站长秘制下载工具
步骤 1 : TestMail   
步骤 2 : pom.xml   
步骤 3 : qq邮箱   
步骤 4 : 可运行项目   

经过测试,是可以发送出去的。但是需要自己申请邮箱。 最好用 163的邮箱,没那么多问题,qq邮箱,foxmail,什么的都会出现奇奇怪怪的问题,不好调试。
TestMail
package cn.how2j.test; import static java.lang.annotation.ElementType.METHOD; import static java.lang.annotation.ElementType.TYPE; import java.lang.annotation.Documented; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.lang.reflect.Method; import org.junit.Before; import org.junit.Test; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.mail.MailAccount; import cn.hutool.extra.mail.MailUtil; public class TestMail { private MailAccount account; @Before public void prepareMailAccount() { account = new MailAccount(); account.setHost("smtp.163.com"); account.setPort(25); account.setAuth(true); account.setFrom("test@163.com"); //假邮箱,请自己申请真实邮箱 account.setUser("test@163.com"); //假邮箱,请自己申请真实邮箱 account.setPass("testpassword"); //假密码,请自己申请真实邮箱 } @Test @Comment("发送普通文本") public void test1(){ //因为账号密码不对,所以不能正确发送 //MailUtil.send(account,"test@163.com", "hutool 测试邮件" + DateUtil.now(), "测试内容", false); } @Test @Comment("发送html邮件") public void test2(){ //因为账号密码不对,所以不能正确发送 //MailUtil.send(account,"test@163.com", "hutool 测试邮件" + DateUtil.now(), "<p>测试内容</p>", true); } @Test @Comment("发送带附件的邮件") public void test3(){ //因为账号密码不对,所以不能正确发送 MailUtil.send(account,"test@163.com", "hutool 测试邮件" + DateUtil.now(), "<p>测试内容</p>", true, FileUtil.file("d:/test.txt")); } private String preComment = null; private void c(String msg) { System.out.printf("\t备注:%s%n",msg); } private void p1(String type1, Object value1, String type2, Object value2) { p(type1, value1, type2, value2, "format1"); } private void p2(String type1, Object value1, String type2, Object value2) { p(type1, value1, type2, value2, "format2"); } private void p3(String type1, Object value1) { p(type1, value1, "", "", "format3"); } private void p(String type1, Object value1, String type2, Object value2, String format) { try { throw new Exception(); } catch (Exception e) { String methodName = getTestMethodName(e.getStackTrace()); Method m =ReflectUtil.getMethod(this.getClass(), methodName); Comment annotation = m.getAnnotation(Comment.class); if(null!=annotation) { String comment= annotation.value(); if(!comment.equals(preComment)) { System.out.printf("%n%s 例子: %n%n",comment); preComment = comment; } } } int padLength = 12; type1=StrUtil.padEnd(type1,padLength,Convert.toSBC(" ").charAt(0)); type2=StrUtil.padEnd(type2,padLength,Convert.toSBC(" ").charAt(0)); if("format1".equals(format)) { System.out.printf("\t%s的:\t\"%s\" %n\t被转换为----->%n\t%s的 :\t\"%s\" %n%n",type1,value1, type2, value2); } if("format2".equals(format)) { System.out.printf("\t基于 %s:\t\"%s\" %n\t获取 %s:\t\"%s\"%n%n",type1,value1, type2, value2); } if("format3".equals(format)) { System.out.printf("\t%s:\t\"%s\" %n\t%n",type1,value1); } } private String getTestMethodName(StackTraceElement[] stackTrace) { for (StackTraceElement se : stackTrace) { String methodName = se.getMethodName(); if(methodName.startsWith("test")) return methodName; } return null; } @Target({METHOD,TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface Comment { String value(); } }
从现在开始,都是需要第三方包 才能使用的 hutool 功能了
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.how2j</groupId> <artifactId>hutool</artifactId> <version>0.0.1-SNAPSHOT</version> <name>hutool</name> <description>hutool</description> <dependencies> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.3.1</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.3.1</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> </dependencies> </project>
关于qq邮箱如果要使用,密码要使用授权码。 授权码的获取手段:
https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
在右上角有本知识点对应的可运行项目下载 ,实在自己搞不出来,就下载解压出来比较一下。


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 JAVA 应用-hutool-邮件工具 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 982790551
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图