国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java中javamail發送帶附件的郵件實現方法

java中javamail發送帶附件的郵件實現方法

2019-12-07 16:20shichen2014 JAVA教程

這篇文章主要介紹了java中javamail發送帶附件的郵件實現方法,較為詳細的分析了JavaMail發送郵件的用法,是非常實用的技巧,需要的朋友可以參考下

本文實例講述了javajavamail發送帶附件郵件實現方法。分享給大家供大家參考。具體分析如下:

JavaMail,顧名思義,提供給開發者處理電子郵件相關的編程接口。它是Sun發布的用來處理email的API。它可以方便地執行一些常用的郵件傳輸,JavaMail是可選包,因此如果需要使用的話你需要首先從java官網上下載。目前最新版本是JavaMail1.5.0,下面我們來看看javamail發送帶附件的郵件實例

mail.java 代碼:

復制代碼代碼如下:
package mail;  
  
import java.util.* ;  
import java.io.* ;  
import javax.mail.* ;  
import javax.mail.internet.* ;  
import javax.activation.* ;  
public class Mail {  
    //定義發件人、收件人、SMTP服務器、用戶名、密碼、主題、內容等  
    private String displayName;  
    private String to;  
    private String from;  
    private String smtpServer;  
    private String username;  
    private String password;  
    private String subject;  
    private String content;  
    private boolean ifAuth; //服務器是否要身份認證  
    private String filename="";  
    private Vector file = new Vector(); //用于保存發送附件的文件名的集合
     
    /** 
     * 設置SMTP服務器地址 
     */  
    public void setSmtpServer(String smtpServer){  
        this.smtpServer=smtpServer;  
    }  
     
    /** 
     * 設置發件人的地址 
     */  
    public void setFrom(String from){  
        this.from=from;  
    }  
    /** 
     * 設置顯示的名稱 
     */  
    public void setDisplayName(String displayName){  
        this.displayName=displayName;  
    }  
     
    /** 
     * 設置服務器是否需要身份認證 
     */  
    public void setIfAuth(boolean ifAuth){  
        this.ifAuth=ifAuth;  
    }  
     
    /** 
     * 設置E-mail用戶名 
     */  
    public void setUserName(String username){  
        this.username=username;  
    }  
     
    /** 
     * 設置E-mail密碼 
     */  
    public void setPassword(String password){  
        this.password=password;  
    }  
     
    /** 
     * 設置接收者 
     */  
    public void setTo(String to){  
        this.to=to;  
    }  
     
    /** 
     * 設置主題 
     */  
    public void setSubject(String subject){  
        this.subject=subject;  
    }  
     
    /** 
     * 設置主體內容 
     */  
    public void setContent(String content){  
        this.content=content;  
    }  
     
    /** 
     * 該方法用于收集附件名 
     */  
    public void addAttachfile(String fname){  
        file.addElement(fname);  
    }  
     
    public Mail(){  
         
    }  
     
    /** 
     * 初始化SMTP服務器地址、發送者E-mail地址、用戶名、密碼、接收者、主題、內容 
     */  
    public Mail(String smtpServer,String from,String displayName,String username,String password,String to,String subject,String content){  
        this.smtpServer=smtpServer;  
        this.from=from;  
        this.displayName=displayName;  
        this.ifAuth=true;  
        this.username=username;  
        this.password=password;  
        this.to=to;  
        this.subject=subject;  
        this.content=content;  
    }  
     
    /** 
     * 初始化SMTP服務器地址、發送者E-mail地址、接收者、主題、內容 
     */  
    public Mail(String smtpServer,String from,String displayName,String to,String subject,String content){  
        this.smtpServer=smtpServer;  
        this.from=from;  
        this.displayName=displayName;  
        this.ifAuth=false;  
        this.to=to;  
        this.subject=subject;  
        this.content=content;  
    }  
  
    /** 
     * 發送郵件 
     */  
    public HashMap send(){  
        HashMap map=new HashMap();  
        map.put("state", "success");  
        String message="郵件發送成功!";  
        Session session=null;  
        Properties props = System.getProperties();  
        props.put("mail.smtp.host", smtpServer);  
        if(ifAuth){ //服務器需要身份認證  
            props.put("mail.smtp.auth","true");     
            SmtpAuth smtpAuth=new SmtpAuth(username,password);  
            session=Session.getDefaultInstance(props, smtpAuth);   
        }else{  
            props.put("mail.smtp.auth","false");  
            session=Session.getDefaultInstance(props, null);  
        }  
        session.setDebug(true);  
        Transport trans = null;    
        try {  
            Message msg = new MimeMessage(session);   
            try{  
                Address from_address = new InternetAddress(from, displayName);  
                msg.setFrom(from_address);  
            }catch(java.io.UnsupportedEncodingException e){  
                e.printStackTrace();  
            }  
            InternetAddress[] address={new InternetAddress(to)};  
            msg.setRecipients(Message.RecipientType.TO,address);  
            msg.setSubject(subject);  
            Multipart mp = new MimeMultipart();  
            MimeBodyPart mbp = new MimeBodyPart();  
            mbp.setContent(content.toString(), "text/html;charset=gb2312");  
            mp.addBodyPart(mbp);    
            if(!file.isEmpty()){//有附件  
                Enumeration efile=file.elements();  
                while(efile.hasMoreElements()){   
                    mbp=new MimeBodyPart();  
                    filename=efile.nextElement().toString(); //選擇出每一個附件名  
                    FileDataSource fds=new FileDataSource(filename); //得到數據源  
                    mbp.setDataHandler(new DataHandler(fds)); //得到附件本身并至入BodyPart  
                    mbp.setFileName(fds.getName());  //得到文件名同樣至入BodyPart  
                    mp.addBodyPart(mbp);  
                }    
                file.removeAllElements();      
            }   
            msg.setContent(mp); //Multipart加入到信件  
            msg.setSentDate(new Date());     //設置信件頭的發送日期  
            //發送信件  
            msg.saveChanges();   
            trans = session.getTransport("smtp");  
            trans.connect(smtpServer, username, password);  
            trans.sendMessage(msg, msg.getAllRecipients());  
            trans.close();  
             
        }catch(AuthenticationFailedException e){     
             map.put("state", "failed");  
             message="郵件發送失敗!錯誤原因:\n"+"身份驗證錯誤!";  
             e.printStackTrace();   
        }catch (MessagingException e) {  
             message="郵件發送失敗!錯誤原因:\n"+e.getMessage();  
             map.put("state", "failed");  
             e.printStackTrace();  
             Exception ex = null;  
             if ((ex = e.getNextException()) != null) {  
                 System.out.println(ex.toString());  
                 ex.printStackTrace();  
             }   
        }  
        //System.out.println("\n提示信息:"+message);  
        map.put("message", message);  
        return map;  
    }  
}


SmtpAuth.java 代碼:

復制代碼代碼如下:
package mail;  
  
public class SmtpAuth extends javax.mail.Authenticator {   
    private String username,password;   
  
    public SmtpAuth(String username,String password){   
        this.username = username;    
        this.password = password;    
    }   
    protected javax.mail.PasswordAuthentication getPasswordAuthentication() {   
        return new javax.mail.PasswordAuthentication(username,password);
    }   
}

 

存在的問題就是發送到163的郵件全部都帶有一個附件的符號,不管有沒有發送附件,感興趣的朋友可以對此加以改進和完善。

希望本文所述對大家的Java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩在线一区 | 欧美激情专区 | 久久久网页 | 丝袜天堂 | 亚洲综合中文字幕在线 | 日韩91视频 | 成人小视频在线播放 | 一区二区不卡视频 | 黄色片com | 国产日韩精品入口 | 九九热在线视频观看这里只有精品 | 国产精品高潮呻吟久久 | 日韩午夜在线 | 国产黄色电影 | 桃色视频在线播放 | 成人在线播放 | 国产精品久久久久久久久晋中 | 天天干人人 | 亚洲国产一区视频 | 亚洲国产高清高潮精品美女 | 91伊人| 欧美精品v国产精品v日韩精品 | 日韩亚洲一区二区 | 日本高清视频在线播放 | 国产欧美久久一区二区三区 | 澳门黄色网 | 国产一区二区精品丝袜 | 中文字幕久久精品 | 久久久精品综合 | 国产精品第十页 | 中文字幕亚洲视频 | 亚洲第一区在线 | 午夜精品视频 | 欧美在线不卡视频 | 亚洲三级在线免费观看 | av免费观看网站 | 国产精彩视频 | 人人99 | 国产一区二区三区视频 | 久久久精品欧美 | 国产黄色av网站 |