java中如何实现发邮件功能

需求描述

  • 实验室的资源表管理系统需要这样一种功能:当资源表更改时自动给管理员发邮件;
  • 由于后台是用java写的,所以需要用java实现自动发邮件的功能;
  • 本文参考这里

实现过程

  • 下载jar包并导入工程,在这里下载;
  • 如果您使用的是maven工程,请在这里搜索jar包,包名称为commons-email,选择最新版本的jar包,将其groupId、artifactId、version等信息填入maven工程的导入jar包界面,点击导入即可;
  • 不要忘记在pom.xml中加入jar包的配置信息(我使用的netbeans会自动添加):
1
2
3
4
5
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.4</version>
</dependency>
  • 下面的代码即可实现发邮件的功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package resourcestore.applycontent;

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;

public class SendMail {

public static void send() throws EmailException {
Email email = new SimpleEmail();
email.setHostName("10.106.128.254"); //邮件服务器ip地址
email.setSmtpPort(465); //邮件服务器接收邮件的端口号
email.setAuthenticator(new DefaultAuthenticator("name", "password")); //登录邮件服务器的用户名密码
email.setSSLOnConnect(true);
email.setFrom("...@..."); //发送地址
email.setSubject("TestMail"); //邮件主题
email.setMsg("This is a test mail ... :-)"); //邮件内容
email.addTo("...@..."); //目的地址
email.send(); //发送邮件
}
}
  • 上面只是实现了最简单的邮件发送功能,如果需要更加复杂的、带有附件的、发送html邮件等,请看这里
您的支持是对我最大的鼓励!