java mail mybatis swing实现邮件发送客户端
说明:
这是一个使用swing写出的java发送邮件的客户端,程序中实现了自动登录、添加邮箱账户、发送html邮件、群发邮件、发送附件的功能。
该程序使用maven进行项目依赖管理。
虽然该程序的代码量不多,但较规范地封装了各功能代码,可供学习和参考使用。
运行效果:
使用到的maven依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.4.4</version>
</dependency>
思路:
监听swing按钮点击事件,执行相应的功能。
编译环境:
windows、jdk11、idea2020
示例代码:
如果您想要查看该项目的完整代码,请私信我发给您。
Main主类
package baijiaming.config;
import baijiaming.dao.LoginDao;
import baijiaming.entity.EmailUser;
import baijiaming.util.Tool;
import baijiaming.window.LoginWindow;
import java.util.List;
public class Main {
public static void main(String[] args) {
Tool.databaseVisit(session -> {
LoginDao loginDao = session.getMapper(LoginDao.class);
List<EmailUser> userList = loginDao.selectAll();
if (userList.size() == 0)
new LoginWindow(false); // 数据库中没有信息时显示添加邮箱界面
else {
EmailUser email = userList.get(0);
new LoginWindow(email.getEmail_user(), email.getPassword()); // 数据库中有信息时显示登录界面
}
});
}
}
LoginWindow登录窗口类
package baijiaming.window;
import baijiaming.dao.LoginDao;
import baijiaming.email.Email;
import baijiaming.entity.EmailUser;
import baijiaming.util.Tool;
import javax.swing.*;
import java.util.regex.Pattern;
public class LoginWindow extends MyWindow {
private JButton addButton;
private JButton loginButton;
private JTextField emailField;
private JPasswordField passwordField;
// 界面初始化
@Override
protected void initWindow() {
addButton = new JButton("添加邮箱");
final int addBtnWidth = 100;
addButton.setBounds(Tool.getCenterX(addBtnWidth), 350, addBtnWidth, 48);
addButton.setFont(fontSize16);
loginButton = new JButton("登录");
loginButton.setBounds(Tool.getCenterX(addBtnWidth), 350, addBtnWidth, 48);
loginButton.setFont(fontSize16);
final int fieldWidth = 240;
final int fieldCenterX = Tool.getCenterX(fieldWidth);
emailField = new JTextField();
emailField.setBounds(fieldCenterX, 200, fieldWidth, 30);
emailField.setFont(fontSize14);
passwordField = new JPasswordField();
passwordField.setBounds(fieldCenterX, 280, fieldWidth, 30