package MailAssistant;
import MailAssistant.Entity.User;
import javax.mail.Message;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.*;
public class MailFrame extends JFrame {
private JPanel contentPane;
private final JButton SendButton = new JButton("发送");
private final JButton InboxButton = new JButton("收件箱");
private int number;
private final JTable table = new JTable();
int xOld = 0;
int yOld = 0;
private final JLabel Receiverlabel = new JLabel("收件人");
private final JTextField ReceivertextField = new JTextField();
private final JLabel Subjectlabel = new JLabel("主题");
private final JTextField SubjecttextField = new JTextField();
private final JLabel Contentlabel = new JLabel("邮件内容");
private final JTextArea ContenttextField = new JTextArea();
private final JScrollPane scrollPane = new JScrollPane();
private final JLabel lblAbc = new JLabel("");
private final JLabel lblNewLabel_1 = new JLabel("");
private final JLabel lblNewLabel_2 = new JLabel("");
private final JLabel lblNewLabel_3 = new JLabel("");
private final JLabel lblNewLabel_4 = new JLabel("");
private final JSplitPane splitPane = new JSplitPane();
private String mailAccount;
private String authorizePassword;
private String ReceiverAccount;
private String Subject;
private String Content;
private User user;
//背景图片bgImage
private ImageIcon bgImage = new ImageIcon("res/Mail.jpg");
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MailFrame frame = new MailFrame(null);
frame.setVisible(true);
//frame.fillTable(frame.table, 2);
frame.button(frame);
frame.Inboxbutton(frame);
//frame.setSize(700, 450);
//frame.setLocation(300, 100);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public JButton getbutton() {
return SendButton;
}
public JButton getInboxButton() {
return InboxButton;
}
public void button(MailFrame a) {
JButton button = new JButton();
button = a.getbutton();
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ReceiverAccount = ReceivertextField.getText();
Subject = SubjecttextField.getText();
Content = ContenttextField.getText();
if (ReceiverAccount.equals("") || Content.equals("")) {
System.out.println("信息输入不完整!");
}
boolean results = SendMail.sendMail(ReceiverAccount, Subject, Content, "");
if (results){
JOptionPane.showMessageDialog(new JLabel(), "邮件发送成功!", "提示",JOptionPane.WARNING_MESSAGE);
ReceivertextField.setText("");
SubjecttextField.setText("");
ContenttextField.setText("");
}
}
});
}
public void Inboxbutton(MailFrame a) {
JButton button = new JButton();
button = a.getInboxButton();
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Message[] messages = ReceiveMail.getAllMails();
if (messages !=null){
a.setVisible(false);
JOptionPane.showMessageDialog(new JLabel(), "所有邮件获取成功", "提示",JOptionPane.WARNING_MESSAGE);
ReceivesFrame receivesFrame = new ReceivesFrame(messages);
receivesFrame.Inboxbutton(receivesFrame);
receivesFrame.setVisible(true);
}
}
});
}
public void fillTable(JTable table, int num) {
try {
String[] column = {"Packet", "版本号", "标识"};
DefaultTableModel defaultTableModel = new DefaultTableModel(column, 0) {
public boolean isCellEditable(int row, int column) {
return false;//重写isCellEditable类使整个表格不允许被编辑
}
};
int j = 0;
while (j < num) {
int id = j + 1;
String version = "IPv4";
// int ident = packets[j].getIdent();
// Object[] str_row = {id, version, ident};
// defaultTableModel.addRow(str_row);
j++;
}
table.setModel(defaultTableModel);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "加载不成功!");
}
}
public void uninum() {
mailAccount = "";
authorizePassword = "";
}
public MailFrame(User user) {
this.user = user;
// uninum();
getContentPane().setLayout(null);
this.setLocationRelativeTo(null);
bgImage.setImageObserver(null);
this.setSize((bgImage).getIconWidth(), bgImage.getIconHeight());
//处理拖动事件---去掉默认边框后,不能拖动了,具体实现如下
this.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
xOld = e.getX();//记录鼠标按下时的坐标
yOld = e.getY();
}
});
this.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
int xOnScreen = e.getXOnScreen();
int yOnScreen = e.getYOnScreen();
int xx = xOnScreen - xOld;
int yy = yOnScreen - yOld;
MailFrame.this.setLocation(xx, yy);//设置拖拽后,窗口的位置
}
});
JLayeredPane layeredPane = new JLayeredPane();
layeredPane.setSize(bgImage.getIconWidth(), bgImage.getIconHeight());
getContentPane().add(layeredPane);
//背景图层Panel,充当容器---最底层
JPanel bgPanel = new JPanel();
bgPanel.setLocation(0, 0);
bgPanel.setSize(bgImage.getIconWidth(), bgImage.getIconHeight());
layeredPane.add(bgPanel, JLayeredPane.DEFAULT_LAYER);//放在最底层
//背景图片,添加到背景图层Panel里面
JLabel bgLabel = new JLabel(bgImage);
bgPanel.add(bgLabel);
//主界面,也就是背景上面的一层Panel,可用于添加控件
contentPane = new JPanel();
contentPane.setLocation(0, 0);
contentPane.setSize(700, 450);
contentPane.setLayout(null);
contentPane.setOpaque(false);
layeredPane.add(contentPane, JLayeredPane.MODAL_LAYER);//放在较高一层
//关闭按钮
JButton closeButton = new JButton();
//closeButton.setIcon(new ImageIcon("src/images/closebtn.png"));
closeButton.setSize(30, 30);
contentPane.add(closeButton);
JLabel lblNewLabel = new JLabel("基于SMTP协议的模拟邮件系统");
lblNewLabel.setFont(new Font("楷体", Font.PLAIN, 26));
lblNewLabel.setForeground(new Color(0, 0, 128));
lblNewLabel.setBounds(250, 0, 520, 50);
contentPane.add(lblNewLabel);
JLabel userLabel = new JLabel("欢迎你 --" + user.getUser_name());
userLabel.setFont(new Font("楷体", Font.PLAIN, 20));
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
原文链接:https://blog.csdn.net/qq_37508554/article/details/88874243 自己写的利用java实现的基于SMTP协议的模拟邮件系统,能实现邮件的收发操作,完整代码,仅需配置邮箱账户和授权密码即可使用(代码中利用java swing渲染界面)
资源推荐
资源详情
资源评论
收起资源包目录
MailSendAndReceive.zip (62个子文件)
src
MailAssistant
MyAuthenticator.java 466B
RegisterFrame.java 8KB
ReceivesFrame.java 7KB
SendMail.java 3KB
MailFrame.java 10KB
Entity
User.java 2KB
ReceiveMail.java 3KB
LoginFrame.java 8KB
Jdbc
connector.java 2KB
lib
javax.mail-1.6.0.jar 638KB
activation.jar 55KB
mysql-connector-java-8.0.7-dmr-bin.jar 1.93MB
jsse.jar 634KB
MailAssistant.iml 781B
.idea
artifacts
MailAssistant_jar.xml 794B
libraries
jsse.xml 206B
javax_mail_1_6_0.xml 230B
activation.xml 218B
mysql_connector_java_8_0_7_dmr_bin.xml 266B
mail.xml 206B
misc.xml 273B
workspace.xml 61KB
inspectionProfiles
modules.xml 266B
res
Mail.jpg 58KB
Login.png 211KB
register.png 99KB
receive.png 521KB
out
artifacts
MailAssistant_jar
MailAssistant.jar 3.27MB
production
MailAssistant
MailAssistant
SendMail$1.class 742B
LoginFrame$3.class 1KB
LoginFrame.class 5KB
LoginFrame$6.class 1KB
ReceiveMail.class 3KB
SendMail.class 3KB
MailFrame$6.class 971B
RegisterFrame.class 6KB
LoginFrame$4.class 778B
MailFrame$1.class 879B
RegisterFrame$2.class 1KB
MailFrame.class 8KB
MyAuthenticator.class 673B
LoginFrame$1.class 849B
RegisterFrame$3.class 1KB
MailFrame$2.class 2KB
ReceivesFrame$2.class 828B
ReceivesFrame$4.class 774B
RegisterFrame$4.class 796B
ReceivesFrame$3.class 989B
Entity
User.class 2KB
RegisterFrame$5.class 957B
MailFrame$4.class 752B
RegisterFrame$1.class 872B
LoginFrame$5.class 939B
ReceivesFrame$1.class 1KB
LoginFrame$2.class 2KB
MailFrame$3.class 1KB
MailFrame$5.class 810B
RegisterFrame$6.class 742B
MailFrame$7.class 756B
LoginFrame$7.class 724B
ReceivesFrame.class 5KB
Jdbc
connector.class 3KB
共 62 条
- 1
资源评论
- 若轻~2019-09-01代码蛮好的,可惜不知道是我的哪个包错了,一直报错。Sayello2019-09-02什么错误呢?
Sayello
- 粉丝: 24
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功