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

📄 readmail.java

📁 利用JavaMail处理电子邮件
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
import javax.mail.*;

public class ReadMail extends JFrame implements ActionListener {
	private String smtphost;   //邮件服务器
	private String username;   //用户名
	private String password;   //密码
	
	private JLabel labels[] = new JLabel[3];
	private JTextField textFields[] = new JTextField[3];
	private JTextArea content;
	private JButton get;
	
	private JPanel msgPanel, msgPanel2, messagePanel, buttonPanel;
	
	private static final String labelNames[] = {"Host Address:","User Name:", "PassWord:"};
	
	public ReadMail()
	{
		super("Read Mail");
		
		//获取内容面板
		Container container = getContentPane();
		
		//创建标签,文本域
		for(int i = 0; i < labels.length; i++)
		{   
			labels[i] = new JLabel(labelNames[i], JLabel.RIGHT);
			labels[i].setOpaque(true);
			labels[i].setBackground(new Color(200, 255, 255)); //设置标签背景色
			
			textFields[i] = new JTextField(20);
		}
		//创建密码域
		textFields[2] = new JPasswordField(20);
		
		content = new JTextArea(30, 30);
		content.setFont(new Font("Serif", Font.PLAIN, 14));
		content.setLineWrap(true);
		content.setWrapStyleWord(true);
		
		//创建按钮,注册监听器
		get= new JButton("Get");
		get.addActionListener(this);
        
        //创建面板
		msgPanel = new JPanel(new GridLayout(3,1));
		msgPanel2 = new JPanel(new GridLayout(3,1));
		msgPanel.setBorder(BorderFactory.createMatteBorder(2,2,2,2,new Color(200,255,255)));
		msgPanel2.setBorder(BorderFactory.createMatteBorder(2,2,2,2,new Color(200,255,255)));
		for(int i = 0; i < labels.length; i++)
		{
			msgPanel.add(labels[i]);
			msgPanel2.add(textFields[i]);
		}
        messagePanel = new JPanel(new BorderLayout());
        messagePanel.setBorder(BorderFactory.createMatteBorder(2,2,2,2,new Color(200,255,255))); 
        buttonPanel = new JPanel();
        
        //往面板里添加组件
        buttonPanel.add(get);
        messagePanel.add(msgPanel, BorderLayout.WEST);
        messagePanel.add(msgPanel2, BorderLayout.CENTER);
   
        container.add(messagePanel, BorderLayout.NORTH);
        container.add(new JScrollPane(content), BorderLayout.CENTER);
        container.add(buttonPanel, BorderLayout.SOUTH);
	}
	
	public static void main(String[] args) 
	{
		ReadMail demo = new ReadMail();
		demo.setSize(400,400);                
		demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		demo.show();
	}
    //处理按钮事件
	public void actionPerformed(ActionEvent event)
	{
		if(event.getSource() == get)
		{
			smtphost = textFields[0].getText().trim();
			username = textFields[1].getText().trim();
			password = new String(((JPasswordField)textFields[2]).getPassword());
			getMail();
		}
	}
	
	//接收邮件
	private void getMail()
	{   
		//获取属性
		Properties props = new Properties();
		//获取Session
		Session session = Session.getDefaultInstance(props, null);
		try
		{
			//获取Store
		    Store store = session.getStore("pop3");
		    store.connect(smtphost, username, password);
		    //获取文件夹
		    Folder folder = store.getFolder("inbox");
		    folder.open(Folder.READ_ONLY);
		    //获取目录 
		    Message message[] = folder.getMessages();
		    for(int i = 0; i < message.length; i++){
		    	content.append((i+1) + ": " + message[i].getFrom()[0] + "\n");
		    	content.append(message[i].getSubject() + "\n");
		    	content.append(message[i].getContent().toString());
		    }
		}
		catch(MessagingException me)
		{
			me.printStackTrace(System.out);
		}
		catch(IOException ie){
			ie.printStackTrace(System.out);
		}
	}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -