javaMail

SMTP:用來收發郵件 端口25

POP3用來接收郵件 端口110

IMAP: 收發郵件都可

發送郵件分類:

1. 發送純文本郵件

2.發送html格式

3.發送有附件的郵件

1.發送純文本郵件步驟:

a.創建session對象(用來連接郵件服務器)

b.創建郵件的消息(MimemeMessage)、收件人、發件人.......

c.創建郵件發送對象(Transport)連接到服務器,發送郵件

代碼實例:

得到

//1. 創建session對象(用來連接到郵件服務器)
  Properties props = new Properties();  
  //設置屬性值
  props.put("mail.smtp.auth", "true");//必須驗證用戶的用戶名和密碼  
  Session session = Session.getInstance(props);  
  //session.setDebug(true);
  
  try {
  
   Store store = session.getStore("pop3");
   
   //先連接
   store.connect("localhost", "test", "j7student");// 連接地址  用戶名 密碼
//store.connect("pop3.163.com", "test", "j7student"); //連接到騰訊郵箱p op3.qq.com

Folder fd = store.getFolder("INBOX");//得到郵箱
   fd.open(Folder.READ_ONLY);//只讀
   
   Message ms[] = fd.getMessages();//得到所有郵件
   
   for(Message m : ms)

{
    
           System.out.println(m.getSubject()+":"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(m.getSentDate()));
    
    if(m.getContent() instanceof MimeMultipart)//判讀郵件的類型是否是複雜的

{
      MimeMultipart mp = (MimeMultipart)m.getContent();
      for(int i=0;i<mp.getCount();i++)

{
       if(mp.getBodyPart(i).getContent() instanceof String)

{
        System.out.println("帶有附件的內容:"+mp.getBodyPart(i).getContent());
       }
      }
    }
    else{
     System.out.println("普通內容"+m.getContent());
    }
    
    System.out.println("\n\n\n");
   }
   
   fd.close(false);
   store.close();
   
  } catch (Exception e) {
   
   e.printStackTrace();
   
  }


 * 發送純文本的郵件
 *
 * 步驟:
 *
 * 1. 創建session對象(用來連接到郵件服務器)
 *
 * 2. 創建郵件的消息(MimeMessage(收件人,發件人,標題,內容,時間......))
 *
 * 3. 創建郵件的發送對象(Transport(連接到服務器,發送郵件))

//1. 創建session對象(用來連接到郵件服務器)
  Properties props = new Properties();  
  //設置屬性值
  props.put("mail.smtp.auth", "true");//必須驗證用戶的用戶名和密碼  
  Session session = Session.getInstance(props);  
  session.setDebug(true);
  
  
  //2. 創建郵件的消息(MimeMessage(收件人,發件人,標題,內容,時間......))
  MimeMessage msg = new MimeMessage(session);
  
  try {
   
   msg.setFrom(new InternetAddress("[email protected]"));//發件人
   
   msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));//普通,抄送,祕密抄送
   
   msg.setSubject("我的第一封郵件哦!");//主題
   
   msg.setText("哈哈,我時郵件的內容哦!");//設置內容
   
   msg.setSentDate(new Date());//發送時間
   
   //3. 創建郵件的發送對象(Transport(連接到服務器,發送郵件))
   Transport tran = session.getTransport("smtp");
   
   tran.connect("localhost", "admin", "zuxiateacher");//先連接
   //tran.connect("smtp.qq.com", "admin", "zuxiateacher");//先連接
   //tran.connect("smtp.163.com", "admin", "zuxiateacher");//先連接
   
   tran.sendMessage(msg, msg.getAllRecipients());//發送郵件(郵件的內容,郵件中的收件人)
   
   tran.close();
   
   System.out.println("郵件發送成功!");
   
  } catch (Exception e) {
   e.printStackTrace();
  }

 發送HTML步驟:
 
  1. 創建session對象(用來連接到郵件服務器)
  
 2. 創建郵件的消息(MimeMessage(收件人,發件人,標題,內容,時間......))
  
  3. 創建郵件的發送對象(Transport(連接到服務器,發送郵件))

代碼實例:

//1. 創建session對象(用來連接到郵件服務器)
  Properties props = new Properties();  
  //設置屬性值
  props.put("mail.smtp.auth", "true");//必須驗證用戶的用戶名和密碼  
  Session session = Session.getInstance(props);  
  session.setDebug(true);
  
  
  //2. 創建郵件的消息(MimeMessage(收件人,發件人,標題,內容,時間......))
  MimeMessage msg = new MimeMessage(session);
  
  try {
   
   msg.setFrom(new InternetAddress("
[email protected]"));//發件人
   
   msg.setRecipient(Message.RecipientType.TO, new InternetAddress("
[email protected]"));//普通,抄送,祕密抄送TO 等....
   
   msg.setSubject("HTML標籤郵件(3)!");//主題
   
   msg.setContent("<font color='red'><a href='http://www.baidu.com'>哈哈,我時郵件的內容哦!</a></font>", "text/html;charset=GBK");//設置內容
   
   msg.setSentDate(new Date());//發送時間
   
   //3. 創建郵件的發送對象(Transport(連接到服務器,發送郵件))
   Transport tran = session.getTransport("smtp");
   
   tran.connect("localhost", "admin", "zuxiateacher");//先連接
   //tran.connect("smtp.qq.com", "admin", "zuxiateacher");//先連接
   //tran.connect("smtp.163.com", "admin", "zuxiateacher");//先連接
   
   tran.sendMessage(msg, msg.getAllRecipients());//發送郵件(郵件的內容,郵件中的收件人)
   
   tran.close();
   
   System.out.println("郵件發送成功!");
   
  } catch (Exception e) {
   e.printStackTrace();
  }

 


 * 發送帶有附件的郵件
 *
 * 步驟:
 *
 * 1. 創建session對象(用來連接到郵件服務器)
 *
 * 2. 創建郵件的消息(MimeMessage(收件人,發件人,標題,內容,時間......))
 *
 * 3. 創建郵件的發送對象(Transport(連接到服務器,發送郵件))

代碼實例://1. 創建session對象(用來連接到郵件服務器)
  Properties props = new Properties();  
  //設置屬性值
  props.put("mail.smtp.auth", "true");//必須驗證用戶的用戶名和密碼  
  Session session = Session.getInstance(props);  
  session.setDebug(true);
  
  //2. 創建郵件的消息(MimeMessage(收件人,發件人,標題,內容,時間......))
  MimeMessage msg = new MimeMessage(session);
  
  try {
   msg.setFrom(new InternetAddress("[email protected]"));//發件人
   
   msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));//普通,抄送,祕密抄送
   
   msg.setSubject("帶有附件的郵件!");//主題
   
   msg.setSentDate(new Date());//發送時間
   
   
   //創建多組件對象
   Multipart mp=   new MimeMultipart(); 
   //設置文本內容    
   //創建一個BodyPart
   BodyPart mbp = new MimeBodyPart();
   mbp.setContent("用來發送附件的哦!", "text/html;charset=utf-8");
   mp.addBodyPart(mbp);
   
   //附件處理
   BodyPart mbp1 = new MimeBodyPart();
   FileDataSource fds = new FileDataSource(new File("e:/圖片.rar"));//快速讀取文件
   mbp1.setDataHandler(new DataHandler(fds));//設置數據的指針位置
   //設置附件名稱(下載時候的附件名)
   mbp1.setFileName(MimeUtility.encodeText("圖片.rar", "utf-8", null));
   mp.addBodyPart(mbp1);
   
   //將MiniMultipart設置爲郵件內容
   msg.setContent(mp);//注意:一定要把多組件,添加在Message消息中;
   
   //3. 創建郵件的發送對象(Transport(連接到服務器,發送郵件))
   Transport tran = session.getTransport("smtp");
   
   tran.connect("localhost", "admin", "zuxiateacher");//先連接
   //tran.connect("smtp.qq.com", "admin", "zuxiateacher");//先連接
   //tran.connect("smtp.163.com", "admin", "zuxiateacher");//先連接
   
   tran.sendMessage(msg, msg.getAllRecipients());//發送郵件(郵件的內容,郵件中的收件人)
   
   tran.close();
   
   System.out.println("郵件發送成功!");
   
  } catch (Exception e) {
   e.printStackTrace();
  }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章