import java.awt.*; import java.awt.event.*; import javax.swing.*; import com.borland.jbcl.layout.*; import javax.mail.*; import java.util.*; import javax.mail.internet.*; import java.io.*; import javax.activation.*;
public String host="smtp.163.com"; public String username="abcdefg"; public String password="abcdefg"; public String mail_head_name="this is head of this mail"; public String mail_head_value="this is head of this mail"; public String mail_to="xyz@163.com"; public String mail_from="abcdefg@163.com"; public String mail_subject="this is the subject of this test mail"; public String mail_body="this is the mail_body of this test mail"; //此段代碼用來發(fā)送普通電子郵件 void jButton1_actionPerformed(ActionEvent e) { try { Properties props = new Properties();//獲取系統(tǒng)環(huán)境 Authenticator auth = new Email_Autherticator();//進行郵件服務(wù)器用戶認證
props.put("mail.smtp.host",host); props.put("mail.smtp.auth","true"); Session session = Session.getDefaultInstance(props,auth); //設(shè)置session,和郵件服務(wù)器進行通訊。 MimeMessage message = new MimeMessage(session); message.setContent("Hello","text/plain");//設(shè)置郵件格式 message.setSubject(mail_subject);//設(shè)置郵件主題 message.setText(mail_body);//設(shè)置郵件正文 message.setHeader(mail_head_name,mail_head_value);//設(shè)置郵件標題 message.setSentDate(new Date());//設(shè)置郵件發(fā)送日期
Address address = new InternetAddress(mail_from,"sunxiaoming"); message.setFrom(address); //設(shè)置郵件發(fā)送者的地址
//如果要對郵件發(fā)送者進行多個參數(shù)的設(shè)置,可以用以下語句 // Address address[] = {new InternetAddress("sunxm@oaklet.co.jp","sunxmatoaklet"),new InternetAddress("firstsxm@hotmail.com","sunxmathotmail")}; // message.addFrom(address);
Address toAddress = new InternetAddress(mail_to);//設(shè)置郵件接收方的地址 message.addRecipient(Message.RecipientType.TO,toAddress); // Address ccAddress = new InternetAddress("firstsxm@hotmail.com");//設(shè)置郵件抄送者的地址 // message.addRecipient(Message.RecipientType.CC,ccAddress);
Transport.send(message);//發(fā)送郵件 /* // to get a specific instance from the session for your protocol.pass along the username and password // (blank if unnecessary).send the message,and close the connection; message.saveChanges(); Transport transport = session.getTransport("smtp"); transport.connect(host,username,password); transport.sendMessage(message,message.getAllRecipients()); transport.close(); */ System.out.println("send ok!"); } catch(Exception ex) { System.out.println("faild"+ex); } }
//此段代碼用來進行服務(wù)器對用戶的認證 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(); //獲取系統(tǒng)變量 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.getFrom()[0]).getPersonal(); String out_from_address = ((InternetAddress)message.getFrom()[0]).getAddress(); System.out.println("From:"+out_from_person+"t"); System.out.println("Address:"+out_from_address+"t");
String out_subject = message.getSubject(); System.out.println("Subject:"+out_subject+"t");
//以下代碼用來獲得郵件的正文信息 Part messagePart = message; 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.setFlag(Flags.Flag.DELETED,true);//最后刪除服務(wù)器端的郵件 } //DELETED,ANSWERED,DRAFT,FLAGGED,RECENT,SEEN,USER folder.close(true);//true的話,徹底刪除已經(jīng)標記為DELETE的郵件,如果為false的話,就不刪除 store.close();//關(guān)閉 } catch(Exception ej2) { System.out.println(ej2); } }
void jButton4_actionPerformed(ActionEvent e) { try {//該程序為回復(fù)郵件 Properties props = System.getProperties(); //獲取系統(tǒng)變量 Authenticator auth = new Email_Autherticator(); //取得穃uFFFD衿魅現(xiàn)? 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.getFrom()[0]).getPersonal();//獲取郵件發(fā)信人的署名
String out_from_address = ((InternetAddress)message.getFrom()[0]).getAddress(); System.out.println(out_from_address);
Message forward = new MimeMessage(session); forward.setSubject("Fwd:"+message.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:nn");
Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart(); messageBodyPart.setDataHandler(message.getDataHandler());
multipart.addBodyPart(messageBodyPart); forward.setContent(multipart);
Transport.send(forward); message.setFlag(Flags.Flag.DELETED,true);//DELETED,ANSWERED,DRAFT,FLAGGED,RECENT,SEEN,USER } folder.close(true); store.close();//關(guān)閉 } 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 |