📄 邮件客户机.java
字号:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class SMTPClient extends JFrame{
private JLabel fromLabel=new JLabel("From:");
private JTextField fromField=new JTextField(40);
private JLabel toLabel=new JLabel("To:");
private JTextField toField=new JTextField(40);
private JLabel subjectLabel=new JLabel("Subject:");
private JTextField subjectField=new JTextField(40);
private JLabel messageLabel=new JLable("Message:/n");
private JTextArea message=new JTextArea(40,12);
private JScrollPane jsp=new JScrollPane(message);
private JButton sendButton=new JButton("Send");
private JButton clearButton=new JButton("Clear");
private JButton quitButton=new JButton("Quit");
Public SMTPClient(){
super("Java MailClient");
Container contentPane=this.getContentPane();
contentPane.setLayout(new BorderLayout());
JPanel labels=new JPanel();
labels.setLayout(new GridLayout(4,1)); //创建一个具有4行1列的网格布局
JPanel fields=new JPanel();
fields.setLayout(new GridLayout(4,1));
string from=System.getProperty("mail.from"," ");
fromField.setText(from);
labels.add(fromLabel);
fields.add(fromField);
labels.add(toLabel);
fields.add(toField);
labels.add(subjectLabel);
fields.add(subjectLabel);
labels.add(messageLabel);
Box north=Box.createHorizontalBox();
north.add(labels);
north.add(fields);
contentPane.add(north,BorderLayout.NORTH);
message.setFont(new Font("Monospaced",Font.PLAIN,12));
contentPane.add(jsp,BorderLayout.CENTER);
JPanel buttons=new JPanel();
buttons.setLayout(new GridLayout(1,3));
buttons.add(sendButton);
sendButton.addActionListener(new sendAction());
buttons.add(clearButton);
clearButton.addActionListener(new clearAction());
buttons.add(quitButton);
quitButton.addActionListener(new quitAction());
contentPane.add(buttons,BorderLayout.SOUTH);
this.pack();
}
//实现Send按钮ActionListener事件处理的方法
class SendAction implements ActionListener{
public void actionPerformed(ActionEvent evt){
try{
properties props=new properties();
string host=system.getProperty("mail.host"," ");
props.put("mail.host",host);
Session mailConnection=Session.getInstance(props,null); //获取一个Session对象,该对象表示程序和一个邮件服务器之间将进行通信。
final Message msg=new MineMessage(mailConnection);
Address to=new InternetAddress(toField.getText());
Address from=new InternetAddress(fromField.getText()); //对Message对象配置它各个域和内容。
msg.setContent(message.getText(),"text/plain"); //邮件主体文本
msg.setFrom(from); //说明发送方地址
msg.setRecipient(Message.RecipientType.TO,to); //说明接收方地址
msg.setSubject(subjectField.getText()); //说明邮件的主题
Runnable r=new Runnable(){ //生成一个线程进行处理
public void run(){
try{
Transport.send(msg); //连接接收方的邮件服务器,并发送消息。
}
catch (Exception ex){
ex.printStackTrace();
}
}
}
Thread t=new Thread(r);
t.start();
message.setText(" ");
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
//实现Clear按钮ActionListener事件处理的方法
class clearAction implements ActionListener{
public void actionPerformed(ActionEvent evt){
fromField.setText(" ");
toField.setText(" ");
subjectField.setText(" ");
message.setText(" ");
}
}
//实现Quit按钮ActionListener事件处理的方法
class quitAction implements ActionListener{
public void actionPerformed(ActionEvent evt){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
public static void main(string[] args){
SMTPClient client=new SMTPClient();
client.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
client.show();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -