1. 程式人生 > >java Mail如何發送郵件

java Mail如何發送郵件

true per 郵件附件 QQ host 2.3 session 驗證 address

1.應用場景:在系統需要發送與用戶相關的消息時,而用戶不在線,可以采取發送郵件的方式,使用戶了解最新的系統情況 或者發送驗證碼等驗證場景

2.實驗環境 主要使用mail.jar和activation.jar兩個包

3.使用一份簡單的郵件

public void sendMail() throws AddressException, MessagingException{
        /*
         * 1.得到session
         */
        
        Properties properties=new Properties();
        properties.setProperty(
"mail.host", "smtp.163.com"); properties.setProperty("mail.smtp.auth", "true"); //賬戶信息測試 Authenticator auth =new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("zhou_s1", "xxx");
//這裏是賬戶名和密碼 } }; Session session =Session.getInstance(properties,auth); /* * 2.創建消息message */ MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress("[email protected]"));//設置發件人 message.setRecipients(RecipientType.TO, "[email protected]");//
設置收件人 //message.setRecipients(RecipientType.CC, "[email protected]");//設置抄送 //message.setRecipients(RecipientType.BCC, "[email protected]");//暗送給誰 message.setSubject("這一份來自周松測試的垃圾郵件--javamail"); message.setContent("test test test !!!","text/html;charset=utf-8"); /* * 3.發送 */ Transport.send(message); }

4.一份帶有附件的郵件

public void sendMailMore() throws AddressException, MessagingException, IOException{
        /*
         * 1.得到session
         */
        
        Properties properties=new Properties();
        properties.setProperty("mail.host", "smtp.163.com");
        properties.setProperty("mail.smtp.auth", "true");
        
        //賬戶信息測試
        Authenticator auth =new Authenticator() {

            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("zhou_s1", "xxx");
            }
        };
        
        Session session =Session.getInstance(properties,auth);
        
        
        /*
         * 2.創建消息message
         */
        MimeMessage message=new MimeMessage(session);
        
        message.setFrom(new InternetAddress("[email protected]"));//設置發件人
        message.setRecipients(RecipientType.TO, "[email protected]");//設置收件人
        
        message.setSubject("這是一份含有附件的郵件---測試使用--javamail");
        
        /******************************************************/
        /*
         * 附件的主體流程 附件含有多個組成部分 簡稱多部件
         *  
         */
        MimeMultipart list =new MimeMultipart();
        
        //1.郵件主要內容  MimeBodyPart
        MimeBodyPart part1 =new MimeBodyPart();
        
        //1.1.內容
        part1.setContent("一份含有附件的測試郵件", "text/html;charset=utf-8");
        
        //1.2將主體添加到郵件中去
        list.addBodyPart(part1);
        
        //2.1.郵件附件裏面的內容
        MimeBodyPart part2 =new MimeBodyPart();
                
        //2.2.附件
        File file =new File("G:/JAVAtest/Merge.mp3");
        
        part2.attachFile(file);
        part2.setFileName(MimeUtility.encodeText("Merge.mp3"));
        //2.3將主體添加到郵件中去
        list.addBodyPart(part2);    
        
        //3.最後將多部件添加到消息中去
        message.setContent(list);
        
        //發送
        Transport.send(message);
    }

測試完畢!

java Mail如何發送郵件