本文實例講述了基於JavaMail API收發郵件的方法。分享給大家供大家參考。具體如下:
1.JavaMail API按其功能劃分通常可分為如下三大類
(1)創建和解析郵件內容的API :Message類是創建和解析郵件的核心API,它的實例對象代表一封電子郵件。
(2)發送郵件的API:Transport類是發送郵件的核心API類,它的實例對象代表實現了某個郵件發送協議的郵件發送對象,例如SMTP協議。
(3)接收郵件的API:Store類是接收郵件的核心API類,它的實例對象代表實現了某個郵件接收協議的郵件接收對象,例如POP3協議。
2. Session類
Session類用於定義整個應用程序所需的環境信息,以及收集客戶端與郵件服務器建立網絡連接的會話信息,如郵件服務器的主機名、端口號、採用的郵件發送和接收協議等。 Session對像根據這些信息構建用於郵件收發的Transport和Store對象,以及為客戶端創建Message對象時提供信息支持。
3.使用JavaMail發送一封簡單的郵件
創建包含郵件服務器的網絡連接信息的Session對象。
創建代表郵件內容的Message對象。
創建Transport對象、連接服務器、發送Message、關閉連接。
4.實例
(1)JavaMail郵件只發送內容
public class SendMail {public static void main(String[] args) throws Exception {//屬性文件Properties props=new Properties();//設置郵件的發送主機名、發送協議和是否驗證props.setProperty("mail. host","smtp.sohu.com" );props.setProperty("mail.transport.protocol", "smtp");props.setProperty("mail.smtp.auth", "true");//獲取發送接收郵件環境的對象Session session=Session.getInstance(props);Message message=createMessage(session);//創建發送郵件的對象Transport tsp=session.getTransport();tsp.connect("jb51", "jb51" );tsp.sendMessage(message, message.getAllRecipients());tsp.close();}public static Message createMessage(Session session) throws Exception{//根據環境對象創建一份郵件MimeMessage message=new MimeMessage(session) ;//設置郵件屬性message.setFrom(new InternetAddress("[email protected]"));message.setRecipient(Message.RecipientType.TO,new InternetAddress("[email protected]"));message.setSubject( "hello");//創建郵件體MimeBodyPart text=new MimeBodyPart();text.setContent("你好?","text/html;charset=utf-8");//設置描述關係MimeMultipart mm=new MimeMultipart();mm.addBodyPart(text);message.setContent(mm);message.saveChanges();return message;}}
(2)JavaMail郵件發送內容和圖片
public class SendImageMail {public static void main(String[] args) throws Exception {//屬性文件Properties props=new Properties();//設置郵件的發送主機名、發送協議和是否驗證props.setProperty("mail. host","smtp.sohu.com" );props.setProperty("mail.transport.protocol", "smtp");props.setProperty("mail.smtp.auth", "true");//獲取發送接收郵件環境的對象Session session=Session.getInstance(props);Message message=createMessage(session);//創建發送郵件的對象Transport tsp=session.getTransport();tsp.connect("jb51", "jb51" );tsp.sendMessage(message, message.getAllRecipients());tsp.close();}public static Message createMessage(Session session) throws Exception{MimeMessage message=new MimeMessage(session);message.setFrom(new InternetAddress(" [email protected]"));message.setRecipient(Message.RecipientType.TO,new InternetAddress("[email protected]"));message.setSubject("圖片");MimeBodyPart text=new MimeBodyPart();text .setContent("好看嗎?<br/><img src='cid:xx.jpg'>","text/html;charset=utf-8");MimeBodyPart image=new MimeBodyPart();image.setDataHandler( new DataHandler(new FileDataSource("src//f.jpg")));image.setContentID("xx.jpg");MimeMultipart mm=new MimeMultipart();mm.addBodyPart(text);mm.addBodyPart(image) ;mm.setSubType("related");message.setContent(mm);message.saveChanges();return message;}}
(3)JavaMail郵件發送內容、圖片和附件
public class SendAttchImageMail {public static void main(String[] args) throws Exception {//屬性文件Properties props=new Properties();//設置郵件的發送主機名、發送協議和是否驗證props.setProperty("mail. host","smtp.sohu.com" );props.setProperty("mail.transport.protocol", "smtp");props.setProperty("mail.smtp.auth", "true");//獲取發送接收郵件環境的對象Session session=Session.getInstance(props);Message message=createMessage(session);//創建發送郵件的對象Transport tsp=session.getTransport();tsp.connect("jb51", "jb51" );tsp.sendMessage(message, message.getAllRecipients());tsp.close();}public static Message createMessage(Session session) throws Exception{MimeMessage message=new MimeMessage(session);message.setFrom(new InternetAddress(" [email protected]"));message.setRecipient(Message.RecipientType.TO,new InternetAddress("[email protected]"));message.setSubject("圖片");MimeBodyPart text=new MimeBodyPart();text .setContent("好看嗎?<br/><img src='cid:xx.jpg'>","text/html;charset=utf-8");MimeBodyPart image=new MimeBodyPart();image.setDataHandler( new DataHandler(new FileDataSource("src//f.jpg")));image.setContentID("xx.jpg");MimeBodyPart attch=new MimeBodyPart();DataHandler dh=new DataHandler(new FileDataSource("src//默默無語.mp3"));attch.setDataHandler(dh);String name=dh.getName();attch.setFileName(MimeUtility.encodeText(name));MimeMultipart mm=new MimeMultipart();mm.addBodyPart(text) ;mm.addBodyPart(image);mm.setSubType("related");MimeBodyPart part=new MimeBodyPart();part.setContent(mm);MimeMultipart m=new MimeMultipart();m.addBodyPart(part);m.addBodyPart (attch);m.setSubType("mixed");message.setContent(m);message.saveChanges();return message;}}
注:郵箱地址必須是真實的
希望本文所述對大家的java程序設計有所幫助。