java 代码发送邮件添加附件_Java实现163邮箱发送邮件到QQ邮箱

026360fbc63e443901023246eee51836.png

先创建一个maven的普通项目

cefb4c2a51f3f98bdd024014a0932b7b.png

添加依赖,附在文档末尾

其中几个注意的地方

主方法入口

a84c7bc9b6f844abe6886f554ae348d8.png

有一个包下载不下来,手动导入下

5b0d83bb742fb4fd9e851e2e018ddbfc.png

准备一个配置文件和主方法类

针对配置文件编写一个类用来接收配置文件中的配置信息

再创建一个测试类

7e203b55dec6f85599d6083e9283a54a.png

配置类中的属性

26534f401dc52adc31c02d76ef898862.png

加载配置信息

fff79858ed16889a619faf92c93a0e43.png

其它get/set、toString方法自动生成就可以了

配置文件的信息

19b41dc03ba92ce8c9e7dd28705fc641.png

其中password这个不是你邮箱的地址,而是你163邮箱的授权码

220da2f2af29c123223a36dc19ca35b9.png

如果不配置可能出现下面的错误

javaMail使用网易163邮箱或者是126或者是网易其他邮箱报535 Error: authentication failed

如果你是163或者126邮箱或者是其他的网易企业邮再或者是网易个人vip邮箱,请你检查一下你网页端邮箱设置中SMTP开启的时候的开启的授权码,你重新关闭SMTP服务再重新开启你就知道了,在程序代码中登录的密码其实就是那个你设置的授权码

c82342efebaf74213d654c5cac77add4.png

我们测试下,看配置信息是否准确加载

5604222ad7f819e72aadd21b4ebd97e3.png

准备邮件发送的工具类

9eb9f0a1bf645fbf29caebe399a39cae.png

编写发送关键方法

a884157ab127fdea20ee703d49509aa3.png

继续编写文本

80f3a24e7dcfbfa27f7923cfa9aaa667.png

继续发送附件

f01c2cfa4f39c50d31caa28beac5e2cd.png

多个附件

58b8b8213e046c8ef3898acc79381e19.png

发送

1bfea89d2eeec474fbea08f75ff83d53.png

主方法

93681378c2428284fc857151a9a56f6d.png

c80274fe9c1abff18d4230c0c256c2c0.png

运行测试下

错误

f23caa80d2e76d3098077fd3a8975346.png

这个地方写错了

62ece29e322176f6a169b68a8dfee31e.png

重新测试成功了

4cff781e89ab43739db80edebc95c576.png

查看邮箱可以看到附件

37371db2a97070735f9b85955c42aab9.png

pom文件

<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>com.xlgl.wzy</groupId>

<artifactId>javamail</artifactId>

<version>1.0</version>

<dependencies>

<dependency>

<groupId>commonsIO</groupId> <!--自定义-->

<artifactId>commonsIO</artifactId> <!--自定义-->

<version>2.5.0</version> <!--自定义-->

<scope>system</scope> <!--system,类似provided,需要显式提供依赖的jar以后,Maven就不会在Repository中查找它-->

<systemPath>${pom.basedir}/jar/commonsIO-2.5.0.jar</systemPath> <!--项目根目录下的lib文件夹下-->

</dependency>

<dependency>

<groupId>com.sun.mail</groupId>

<artifactId>javax.mail</artifactId>

<version>1.6.1</version>

</dependency>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.10</version>

</dependency>

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>1.2.8</version>

</dependency>

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-compress</artifactId>

<version>1.5</version>

</dependency>

<!--邮件发送-->

<dependency>

<groupId>javax.mail</groupId>

<artifactId>mail</artifactId>

<version>1.4.7</version>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<artifactId>maven-assembly-plugin</artifactId>

<configuration>

<descriptorRefs>

<descriptorRef>jar-with-dependencies</descriptorRef>

</descriptorRefs>

<archive>

<manifest>

<mainClass>com.xlgl.wzy.mail.SendMailUtils</mainClass>

</manifest>

</archive>

</configuration>

<executions>

<execution>

<id>make-assembly</id>

<phase>package</phase>

<goals>

<goal>single</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

</project>