中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

java實(shí)現(xiàn)發(fā)送郵件可多個(gè)附件內(nèi)嵌圖片-commons-email使用

2018-07-20    來源:open-open

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

前言

       java實(shí)現(xiàn)發(fā)郵件功能,其實(shí)SUN在javaEE的開發(fā)包里給我們提供了相關(guān)的工具,利用 mail.jar 和 activation.jar可以實(shí)現(xiàn)這個(gè)功能,n年前包括我第一次實(shí)習(xí)的時(shí)候項(xiàng)目上也是用SUN提供的包實(shí)現(xiàn)的,實(shí)現(xiàn)起來比較繁瑣麻煩,今天我們就用 Apache的工具包c(diǎn)ommons-email包來實(shí)現(xiàn)發(fā)送帶郵件和內(nèi)嵌圖片的功能,它是把前者做了下封裝,使用起來更加的簡易方便明了,所以我們使用 commons-email來實(shí)現(xiàn)發(fā)送郵件的功能,必須也引入mail.jar,activation.jar2個(gè)依賴包,MyEclipse中是自帶 的,所以你如果不知道commons-email.jar還需要依賴這個(gè)2個(gè)包的話,一旦把項(xiàng)目換到其他開發(fā)環(huán)境中,可能就出現(xiàn)ClassNotFund 異常,不知道的你可能可能還在郁悶之中呢,這里給大家提供一下這三個(gè)jar包免費(fèi)下載地址:java郵件功能jar包免費(fèi)下載,好了廢話,不多說,直接切入代碼,代碼中我注釋的很詳盡,就不做多余的解釋了,大家一看就明白了。

說明

           由于時(shí)間緊,一直忙于項(xiàng)目的封閉開發(fā),所以先直接貼出實(shí)現(xiàn)代碼 和測試代碼,暫時(shí)不做排版和各個(gè)功能代碼的說明和注意事項(xiàng),不過代碼注釋已非常詳盡,大家一看就會(huì)明白的,等有時(shí)間了會(huì)對(duì)博文做進(jìn)一步的修色和排版、代碼 的說明以方面大家更好的理解和掌握,如有什么疑問或建議,歡迎留言!


實(shí)現(xiàn)代碼:

    package sendemail;  
      
    import java.net.MalformedURLException;  
    import java.net.URL;  
    import java.util.Map;  
      
    import javax.mail.MessagingException;  
      
    import org.apache.commons.mail.EmailAttachment;  
    import org.apache.commons.mail.EmailException;  
    import org.apache.commons.mail.HtmlEmail;  
    import org.apache.commons.mail.ImageHtmlEmail;  
    import org.apache.commons.mail.resolver.DataSourceUrlResolver;  
      
    public class Email {  
        //郵箱服務(wù)器的登錄用戶名  
        private static String username="642417953@qq.com";  
        //郵箱服務(wù)器的密碼  
        private static String password="1234567890";  
        //郵箱服務(wù)器smtp host,此處采用自己的QQ郵箱作為郵件服務(wù)器  
        private static String smtpHost="smtp.qq.com";  
        //發(fā)送方的郵箱(必須為郵箱服務(wù)器的登錄用戶名)  
        private static String fromEmail="642417953@qq.com";  
        //發(fā)送方姓名  
        private static String fromUsername="某某公司";  
        //郵件內(nèi)容編碼,防止亂碼  
        private static String charset="UTF-8";  
      
        /** 
         *java發(fā)送郵件-commons-email 
         * @param nameAndAddrMap 用戶名及對(duì)應(yīng)的郵箱組成的Map 
         * @param subject 郵件主題或標(biāo)題 
         * @param htmlContent 郵件內(nèi)容html格式 
         * @throws EmailException 
         * @throws MessagingException 
         * @author chenleixing 
         */  
        public static void sendEmail(Map<String,String> nameAndAddrMap,String subject,String htmlContent)  
            throws EmailException, MessagingException{  
            //SimpleEmail email = new SimpleEmail();//創(chuàng)建簡單郵件,不可附件、HTML文本等  
            //MultiPartEmail  email = new MultiPartEmail();//創(chuàng)建能加附件的郵件,可多個(gè)、網(wǎng)絡(luò)附件亦可  
            /*ImageHtmlEmail:HTML文本的郵件、通過2代碼轉(zhuǎn)轉(zhuǎn)內(nèi)聯(lián)圖片,  1.3新增的,但我怎么也測試不成功 
              ImageHtmlEmail網(wǎng)上都是官網(wǎng)上例子而官網(wǎng)上例子比較模糊 
              ImageHtmlEmail email=new ImageHtmlEmail();*/  
            HtmlEmail email = new HtmlEmail();//創(chuàng)建能加附件內(nèi)容為HTML文本的郵件、HTML直接內(nèi)聯(lián)圖片但必須用setHtmlMsg()傳郵件內(nèi)容  
              
            //email.setDebug(true);//是否開啟調(diào)試默認(rèn)不開啟  
            email.setSSLOnConnect(true);//開啟SSL加密  
            email.setStartTLSEnabled(true);//開啟TLS加密  
              
            //設(shè)置smtp host,此處采用自己的QQ郵箱作為郵件服務(wù)器  
            email.setHostName(Email.smtpHost);  
            //登錄郵件服務(wù)器的用戶名和密碼(保證郵件服務(wù)器POP3/SMTP服務(wù)開啟)  
            email.setAuthentication(Email.username, Email.password);  
              
            email.setFrom(Email.fromEmail,Email.fromUsername);//發(fā)送方  
            for(Map.Entry<String, String> map:nameAndAddrMap.entrySet()){//遍歷用戶名及對(duì)應(yīng)的郵箱地址組成的map  
                email.addTo(map.getValue(),map.getKey());//接收方郵箱和用戶名  
            }  
            //email.addCc("chen_leixing@qq.com");//抄送方  
            //email.addBcc("leixing_chen@120.com");//秘密抄送方  
              
            email.setCharset(Email.charset);//設(shè)置郵件的字符集為UTF-8防止亂碼  
            email.setSubject(subject);//主題  
            email.setHtmlMsg(htmlContent);//郵件內(nèi)容:<font color='red'>測試簡單郵件發(fā)送功能!</font>  
              
            /*HtmlEmail、ImageHtmlEmail有setHtmlMsg()方法,且可以直接內(nèi)聯(lián)圖片,可網(wǎng)上都搞那么復(fù)雜說不行如 
             *<img src='http://www.apache.org/images/asf_logo_wide.gif' />本人測試新浪、搜狐、QQ郵箱等都能顯示 
             */  
            /*//如果使用setMsg()傳郵件內(nèi)容,則HtmlEmail內(nèi)嵌圖片的方法 
            URL url = new URL("http://www.jianlimuban.com/圖片");   
            String cid = email.embed(url, "名字");   
            email.setHtmlMsg("<img src='cid:"+cid+"' />");*/  
              
            //這是ImageHtmlEmail的內(nèi)嵌圖片方法,我多次測試都不行,官網(wǎng)提供比較模糊,而大家都是用官網(wǎng)舉的例子  
            //內(nèi)嵌圖片,此處會(huì)拋出MessagingException, MalformedURLException異常  
            //URL url=new URL("http://www.apache.org");//定義你基本URL來解決相對(duì)資源的位置  
            //email.setDataSourceResolver(new DataSourceUrlResolver(url));//這樣HTML內(nèi)容里如果有此路徑下的圖片會(huì)直接內(nèi)聯(lián)  
              
            //創(chuàng)建郵件附件可多個(gè)   
            EmailAttachment attachment = new EmailAttachment();//創(chuàng)建附件  
            attachment.setPath("D:\\MongoDB.txt");//本地附件,絕對(duì)路徑    
            //attachment.setURL(new URL("http://www.baidu.com/moumou附件"));//可添加網(wǎng)絡(luò)上的附件  
            attachment.setDisposition(EmailAttachment.ATTACHMENT);  
            attachment.setDescription("MongoDB入門精通");//附件描述   
            attachment.setName("NoSQL數(shù)據(jù)庫");//附件名稱  
            email.attach(attachment);//添加附件到郵件,可添加多個(gè)  
            email.attach(attachment);//添加附件到郵件,可添加多個(gè)  
              
            /*email.buildMimeMessage();//構(gòu)建內(nèi)容類型 , 
            //設(shè)置內(nèi)容的字符集為UTF-8,先buildMimeMessage才能設(shè)置內(nèi)容文本 ,但不能發(fā)送HTML格式的文本 
            email.getMimeMessage().setText("<font color='red'>測試簡單郵件發(fā)送功能!</font>","UTF-8");*/  
              
            email.send();//發(fā)送郵件  
        }     
    }  

測試代碼:

    package sendemail;  
      
    import java.util.Map;  
      
    import org.junit.Test;  
      
    import com.google.common.collect.Maps;  
      
      
    public class EmailTest {  
      
        @Test  
        public void testSendSimpleEmail(){  
              
            //用戶名和對(duì)應(yīng)的郵箱  
            Map<String,String> nameAndAddrMap=Maps.newHashMap();//新建一個(gè)map  
            nameAndAddrMap.put("張三","chen*****@sina.com");  
            nameAndAddrMap.put("李四","leixing*****@163.com");  
            nameAndAddrMap.put("王麻子","chenxing*****@qq.com");  
            String htmlContent="<font color='red'>測試簡單郵件發(fā)送功能!</font>";//郵件內(nèi)容  
            String subject="新年好!";//主題或者標(biāo)題  
            try {  
                Email.sendEmail(nameAndAddrMap,subject,htmlContent);//測試發(fā)送郵件功能  
            } catch( Exception e) {  
                System.out.println("郵件發(fā)送失!");  
                //logger.setMessage(e.getMessage());  
            }  
        }  
    }  

出處:http://blog.csdn.net/chenleixing/article/details/44708533

標(biāo)簽: Google isp ssl 代碼 服務(wù)器 數(shù)據(jù)庫 網(wǎng)絡(luò)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:Java實(shí)現(xiàn)對(duì)cookie的操作(增刪改查)

下一篇:javaWEB文件上傳與下載