⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 邮件客户机.java

📁 SMTPClient程序
💻 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 + -