- 作者:xiaoxiao
- 发表时间:2020-12-23 10:35
- 来源:未知
//此段代码用来进行服务器对用户的认证 public class Email_Autherticator extends Authenticator { public Email_Autherticator() { super(); } public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username,password); } } //该程序为接收邮件 void jButton2_actionPerformed(ActionEvent e) { try { Properties props = System.getProperties(); //获取系统变量 Authenticator auth = new Email_Autherticator(); props.put("mail.smtp.host",host); props.put("mail.smtp.auth","true"); Session session = Session.getDefaultInstance(props,auth); //建立session Store store = session.getStore("pop3"); store.connect(host,username,password); //After connecting to the Store,you can get a Folder,which must be opened before you can read messages from it: Folder folder = store.getFolder("INBOX");//连接到Store后,取得一个文件夹,一般默认的是INDEX folder.open(Folder.READ_WRITE);//READ_ONLY为打开方式 Message message[] = folder.getMessages();//从文件夹获取邮件信息 //可以用两种方式去获得邮件信息,getContent()用来获得邮件的主体信息。而WriteTo()可以用来获得邮件的全部信息,包括头部信息 // System.out.println(((MimeMessage)message).getContent()); for (int i=0,n=message.length;i { String out_from_person = ((InternetAddress)message[i].getFrom()[0]).getPersonal(); String out_from_address = ((InternetAddress)message[i].getFrom()[0]).getAddress(); System.out.println("From:"+out_from_person+"/t"); System.out.println("Address:"+out_from_address+"/t"); String out_subject = message[i].getSubject(); System.out.println("Subject:"+out_subject+"/t"); //以下代码用来获得邮件的正文信息 Part messagePart = message[i]; Object out_content = messagePart.getContent(); if (out_content instanceof Multipart) { messagePart = ((Multipart)out_content).getBodyPart(0); System.out.println("[ Multipart Message ]"); } String out_content_type = messagePart.getContentType(); System.out.println("CONTENT:"+out_content_type); if (out_content_type.startsWith("text/plain") | | out_content_type.startsWith("text/html")) { InputStream ipstm = messagePart.getInputStream(); BufferedReader bufreader = new BufferedReader(new InputStreamReader(ipstm)); String thisLine = bufreader.readLine(); while (thisLine != null) { System.out.println("thisLine: "+thisLine); thisLine = bufreader.readLine(); } } System.out.println("------------------------------------------------------------"); message[i].setFlag(Flags.Flag.DELETED,true);//最后删除服务器端的邮件 } //DELETED,ANSWERED,DRAFT,FLAGGED,RECENT,SEEN,USER folder.close(true);//true的话,彻底删除已经标记为DELETE的邮件,如果为false的话,就不删除 store.close();//关闭 } catch(Exception ej2) { System.out.println(ej2); } } void jButton4_actionPerformed(ActionEvent e) { try {//该程序为回复邮件 Properties props = System.getProperties(); //获取系统变量 Authenticator auth = new Email_Autherticator(); //取得?/uFFFD衿魅现? props.put("mail.smtp.host",host); props.put("mail.smtp.auth","true"); Session session = Session.getDefaultInstance(props,auth); //建立session Store store = session.getStore("pop3"); store.connect(host,username,password); Folder folder = store.getFolder("INBOX"); folder.open(Folder.READ_WRITE); Message message[] = folder.getMessages(); for (int i=0,n=message.length;i { // String out_from_person = ((InternetAddress)message[i].getFrom()[0]).getPersonal();//获取邮件发信人的署名 String out_from_address = ((InternetAddress)message[i].getFrom()[0]).getAddress(); System.out.println(out_from_address); Message forward = new MimeMessage(session); forward.setSubject("Fwd:"+message[i].getSubject()); forward.setFrom(new InternetAddress(mail_to)); forward.addRecipient(Message.RecipientType.TO,new InternetAddress(out_from_address)); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setText("Here you go with the original message:/n/n"); Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messageBodyPart); messageBodyPart = new MimeBodyPart(); messageBodyPart.setDataHandler(message[i].getDataHandler()); multipart.addBodyPart(messageBodyPart); forward.setContent(multipart); Transport.send(forward); message[i].setFlag(Flags.Flag.DELETED,true);//DELETED,ANSWERED,DRAFT,FLAGGED,RECENT,SEEN,USER } folder.close(true); store.close();//关闭 } catch(Exception ej2) { System.out.println(ej2); } } void jButton5_actionPerformed(ActionEvent e) { try { Properties props = new Properties(); Authenticator auth = new Email_Autherticator(); props.put("mail.smtp.host",host); props.put("mail.smtp.auth","true"); Session session = Session.getDefaultInstance(props,auth); MimeMessage message = new MimeMessage(session); message.setContent("Hello","text/plain"); message.setSubject(mail_subject); message.setText(mail_body); message.setHeader(mail_head_name,mail_head_value); message.setSentDate(new Date()); message.setFrom(new InternetAddress(mail_from,"sunxiaoming")); //to signal man