<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    本站不再更新,歡迎光臨 java開發技術網
    隨筆-230  評論-230  文章-8  trackbacks-0

    package pg.system;

    /**
     * 
    @author pdw
     *
     * TODO 發送郵件!
     * 
     
    */
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;
    import java.security.spec.X509EncodedKeySpec;

    public class SendMail {
        
    public MimeMessage mimeMsg;  //要發送的email信息
        private Session session;
        
    private Properties props;
        
    private boolean needAuth=false;
        
        
    private String username="";
        
    private String password="";
        
        
    private Multipart mp;  //存放郵件的title 內容和附件
        
        
    public SendMail(String stmp){
            setSmtpHost(stmp);
            createMimeMessage();
        }
        
    /**
         * 
         * 
    @param hostName
         
    */
        
    public void setSmtpHost(String hostName){
            System.out.println(
    "mail.stmp.host= "+hostName);
            
    if(props==null){
                props
    =System.getProperties();
            }
            props.put(
    "mail.smtp.host",hostName);
        }
        
        
    public boolean createMimeMessage(){
            
    try{
                System.out.println(
    "Session begin-----------");
                session
    =Session.getInstance(props,null);
            }
    catch(Exception e){
                System.out.println(
    "Session.getInstance faild!"+e);
                
    return false;
            }
            System.out.println(
    "MimeMEssage begin---------!");
            
    try{
                mimeMsg
    =new MimeMessage(session);
                mp
    =new MimeMultipart();
                
    return true;
            }
    catch(Exception e){
                System.out.println(
    "MimeMessage fiald! "+e.toString());
                
    return false;
            }
        }
        
    /**
         * 
         * 
    @param need
         
    */
        
    public void setNeedAuth(boolean need){
            System.out.println(
    ":mail.smtp.auth="+need);
            
    if(props==null){
                props
    =System.getProperties();
            }
            
    if(need){
                props.put(
    "mail.smtp.auth","true");
            }
            
    else{
                props.put(
    "mail.smtp.auth","false");
            }
        }
        
    /**
         * 
         * 
    @param name
         * 
    @param pass
         
    */
        
    public void setNamePass(String name,String pass){
            username
    =name;
            password
    =pass;
        }
        
    /**
         * 
         * 
    @param mailSubject
         * 
    @return boolean
         
    */
        
    public boolean setSubject(String mailSubject){
            System.out.println(
    "set title begin.");
            
    try{
                
    if(!mailSubject.equals("")&&mailSubject!=null){
                    mimeMsg.setSubject(mailSubject);
                }
                
    return true;
            }
    catch(Exception e){
                System.out.println(
    "set Title faild!");
                
    return false;
            }
        }
        
    /**
         *  添加附件..
         * 
    @param filename
         * 
    @return
         
    */
        
    public boolean addFileAffix(String filename){
            System.out.println(
    "增加附件..");
            
    if(filename.equals("")||filename==null){
                
    return false;
            }
            String file[];
            file
    =filename.split(";");
            System.out.println(
    "你有 "+file.length+" 個附件!");
            
    try{
                
    for(int i=0;i<file.length;i++){
                    BodyPart bp
    =new MimeBodyPart();
                    FileDataSource fileds
    =new FileDataSource(file[i]);
                    bp.setDataHandler(
    new DataHandler(fileds));
                    bp.setFileName(fileds.getName());
                    mp.addBodyPart(bp);
                 }
                 
    return true;
               }
    catch(Exception e){
                 System.err.println(
    "增加附件: "+filename+"--faild!"+e);
                 
    return false;
            }
       }
        
    /**
         * 
         * 
    @param from
         * 
    @return
         
    */
        
    public boolean setFrom(String from){
            System.out.println(
    "Set From .");
            
    try{
                mimeMsg.setFrom(
    new InternetAddress(from));
                
    return true;
            }
    catch(Exception e){
                
    return false;
            }
        }
        
    /**
         * 
         * 
    @param to
         * 
    @return
         
    */
        
    public boolean setTo(String to){
            System.out.println(
    "Set to.");
            
    if(to==null||to.equals("")){
                
    return false;
            }
            
    try{
                mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
                
    return true;
            }
    catch(Exception e){
                
    return false;
            }
        }
        
    public boolean setCopyTo(String copyto){
            
    if(copyto.equals("")||copyto==null){
                
    return false;
            }
            
    try{
                String copy[];
                copy
    =copyto.split(";");
                
    for(int i=0;i<copy.length;i++){
                    mimeMsg.setRecipients(Message.RecipientType.TO,(Address[])InternetAddress.parse(copy[i]));
                }
                
    return true;
            }
    catch(Exception e){
                
    return false;
            }
        }
        
        
        
    /**
         * 設置信的內容!
         * 
    @param mailBody
         * 
    @return boolean
         
    */
        
    public boolean setBody(String mailBody){
            
    try{
                BodyPart bp
    =new MimeBodyPart();
                bp.setContent(
    "<meta http-equiv=Context-Type context=text/html;charset=gb2312>"+mailBody,"text/html;charset=GB2312");
                mp.addBodyPart(bp);
                
    return true;
            }
    catch(Exception e){
                System.out.println(
    "Set context Faild! "+e);
                
    return false;
            }
        }
        
    /**
         * 
         * 
    @param htmlpath
         * 
    @return boolean
         
    */
        
    public boolean setHtml(String htmlpath){
            
    try{
                
    if(!htmlpath.equals("")||htmlpath!=null){
                    BodyPart mbp
    =new MimeBodyPart();
                    DataSource ds
    =new FileDataSource(htmlpath);
                    mbp.setDataHandler(
    new DataHandler(ds));
                    mbp.setHeader(
    "Context-ID","meme");
                    mp.addBodyPart(mbp);
                    }
                    
    return true;
                }
    catch(Exception  e){
                    System.err.println(
    "Set Html Faild!"+e);
                    
    return false;
                }
            }
         
    public boolean setOut(){
             
    try{
                 mimeMsg.setContent(mp);
                 mimeMsg.saveChanges();
                 System.out.println(
    "正在SendMail.");
                 Session mailSession
    =session.getInstance(props,null);
                 Transport tp
    =mailSession.getTransport("smtp");
                 tp.connect((String)props.getProperty(
    "mail.stmp.host"),username,password);
                 tp.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));
                 
    //tp.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.CC));
                 System.out.println("Send Mail 成功..");
                 tp.close();
                 
    return true;
             }
    catch(Exception e){
                 e.printStackTrace();
                 
    return false;
             }
         }
           
    }

    測試類]

    package pg.system;


    public class SendMailDemo {

        
    public static void main(String[] args) {
            SendMail sm
    =new SendMail("mail.ldtec.com");
            sm.setNamePass(
    "peidewan@ldtec.com","123456");
            sm.setSubject(
    "測試,測試");
            sm.setFrom(
    "peidewan@ldtec.com");
            sm.setTo(
    "pdw2009@yahoo.com.cn");
            sm.addFileAffix(
    "f:/adsl.txt");
            StringBuffer bs
    =new StringBuffer();
            bs.append(
    "裴德萬:\n");
            bs.append(
    "       測試度奇珍異寶埼地在檌!!!!!!!!!!!");
            sm.setBody(
    "DFSAAAAAAAAAAAAAAAAA");
            sm.setNeedAuth(
    true);
            
    boolean b=sm.setOut();
            
    if(b){
                System.out.println(
    "\n郵件發送成功!!!!!");
            }
            
    else{
                System.out.println(
    "郵件發送失敗!!!!");
            }
        }
    }



    很久以前寫的一個發郵件的例,今天把它貼出來做筆記!!

    gmail郵件收發。
    package test;
    import java.security.Security;
    import java.util.*;

    import javax.mail.*;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeUtility;

    /**
     * 定時收取新郵件類
     * 
    @author peidw
     *
     
    */
    class ReceiveNewMailTimerTask extends TimerTask{
        
    static Store store=null;
        
    static String username="pdw2009@gmail.com";
        
    static String password="pdw123456";
        
    /**
         * 靜態初始化模塊,只保留一個Store連接
         
    */
        
    static{
            
    try {
                connect(username,password);
            } 
    catch (Exception e) {
                e.printStackTrace();
            }
        }
        
        
        
    /**
         * 任務計劃執行方法
         
    */
        @Override
        
    public void run() {
            
    try{
                System.out.println(
    "正在讀取郵箱.");
                printNewMailInfo(getNewMessage(username,password));
            }
    catch(Exception e){
                e.printStackTrace();
            }
            
        }
        
    private static void connect(String username,String password)throws Exception{
            Security.addProvider(
    new com.sun.net.ssl.internal.ssl.Provider());   
            
    final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";   
            Properties props 
    = System.getProperties();   
            props.setProperty(
    "mail.pop3.socketFactory.class", SSL_FACTORY);   
            props.setProperty(
    "mail.pop3.socketFactory.fallback""false");   
            props.setProperty(
    "mail.pop3.port""995");   
            props.setProperty(
    "mail.pop3.socketFactory.port""995");   
            Session session 
    = Session.getDefaultInstance(props, null);   
            URLName urln 
    = new URLName("pop3""pop.gmail.com"995null,   
                    username, password);   
            store 
    = session.getStore(urln);   
            store.connect(); 
        }
        
    /**
         * 讀取新郵件
         * 
    @param username
         * 
    @param password
         * 
    @return
         * 
    @throws Exception
         
    */
        
    public Message[] getNewMessage(String username,String password)throws Exception{
            
    if(store.isConnected()){
                connect(username,password);
            }
            Folder inbox 
    = store.getFolder("INBOX");   
            inbox.open(Folder.READ_ONLY);   
            FetchProfile profile 
    = new FetchProfile();   
            profile.add(FetchProfile.Item.ENVELOPE);  
            
            
    if(inbox.getUnreadMessageCount()>0){
                
    int fetchcount=inbox.getMessageCount()-inbox.getUnreadMessageCount();
                
    if(fetchcount==0)return inbox.getMessages();
                Message[] mesg
    =inbox.getMessages(12); //取取未讀郵件
                return mesg;
            }
    else{
                System.out.println(
    "不存在新郵件..");
                
    throw new RuntimeException("不存在新郵件");
            }
        }
        
    /**
         * 打印郵件信息
         * 
    @param message
         * 
    @throws Excepiton
         
    */
        
    public void printNewMailInfo(Message[] message)throws Exception{
            Message msg
    =null;
            String text
    =null;
            
    for(int i=0;i<message.length;i++){
                msg
    =message[i];
                text
    =msg.getSubject();
                
    if(text==null){
                    System.out.println(
    "該郵件沒標準");
                }
    else if(text.startsWith("=GBK")||text.startsWith("=gb2312")){
                    text
    =MimeUtility.decodeText(text);
                }
    else{
                    text
    =new String(text.getBytes("gb2312"));
                }
                System.out.println(
    "--" + text); 
            }
        }
    }


    public class GmailReceiveAndSend {
        
        
    public void sendMail()throws Exception{
            
    //收郵件的連接
            Security.addProvider(new  com.sun.net.ssl.internal.ssl.Provider());
            
    final  String  SSL_FACTORY  =  "javax.net.ssl.SSLSocketFactory";
            Properties  props  
    =  System.getProperties();
            props.setProperty(
    "mail.smtp.host",  "smtp.gmail.com");
            props.setProperty(
    "mail.smtp.socketFactory.class",  SSL_FACTORY);
            props.setProperty(
    "mail.smtp.socketFactory.fallback",  "false");
            props.setProperty(
    "mail.smtp.port",  "465");
            props.setProperty(
    "mail.smtp.socketFactory.port",  "465");
            props.put(
    "mail.smtp.auth",  "true");
            
    final  String  username  =  "pdw2009";
            
    final  String  password  =  "pdw123456";
            Session  session  
    =  Session.getDefaultInstance(props,  new  Authenticator(){
                
    protected  PasswordAuthentication  getPasswordAuthentication()  {
                               
    return  new  PasswordAuthentication(username,password );
             }});
             Message  msg  
    =  new  MimeMessage(session);

             msg.setFrom(
    new  InternetAddress("pdw2009"  +  "@gmail.com"));
             msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(
    "pdw2009@qq.com",false));
             msg.setSubject(
    "你好");
             msg.setText(
    "gmail 郵件測試");
             msg.setSentDate(
    new  Date());
             Transport.send(msg);
             System.out.println(
    "Message  sent.");


        }
        
        
        
    public static void main(String[] args)throws Exception{
            ReceiveNewMailTimerTask task
    =new ReceiveNewMailTimerTask();
            Timer timer
    =new Timer();
            
    //timer.schedule(task,2000,1*60*1000);
            GmailReceiveAndSend gs=new GmailReceiveAndSend();
            gs.sendMail();
        }
    }
    gmail必須自己手動開通支持郵箱支持pop3功能
    posted on 2007-10-08 22:40 有貓相伴的日子 閱讀(8633) 評論(7)  編輯  收藏 所屬分類: jdk

    評論:
    # re: javax.mail使用例子 2007-10-10 23:11 | 怎么羨慕天空的飛鳥
    這個javamail發送中文附件應該會出現亂碼吧?(推測)  回復  更多評論
      
    # re: javax.mail使用例子 2007-10-11 14:02 | 有貓相伴的日子
    發郵件的代碼我以前測試過了,沒問題  回復  更多評論
      
    # re: javax.mail使用例子 2008-04-01 22:13 | 草包書生
    這個現在對我正好有用  回復  更多評論
      
    # re: javax.mail使用例子[未登錄] 2008-04-25 10:43 | jack
    這樣發送中文你有沒有發送到EXCHANGE SERVER測試過,我寫的郵件發送程序類似,就是中文發出來不對,是亂碼.請指教.  回復  更多評論
      
    # re: javax.mail使用例子 2008-06-12 17:05 |
    請問哪里可以下載到javax.mail包呢?  回復  更多評論
      
    # re: javax.mail使用例子 2009-04-17 15:18 | 奔向災難般的幸福
    CSDN
      回復  更多評論
      
    # re: javax.mail使用例子 2011-08-07 22:39 | 哈哈怪
    請問該如何配置javamail和jfc,我在網上找了好幾種方法但是仍然在import javax.mai.*的時候提示出錯,mupeng@gmail.com,謝謝  回復  更多評論
      
    本站不再更新,歡迎光臨 java開發技術網
    主站蜘蛛池模板: 亚洲中文字幕无码爆乳app| 久久久久亚洲AV片无码下载蜜桃 | 亚洲网红精品大秀在线观看| 一个人看的免费视频www在线高清动漫 | 亚洲午夜福利717| 青青操免费在线视频| 中文字幕亚洲综合久久男男| 白白色免费在线视频| 国产黄色片在线免费观看| 亚洲色偷偷色噜噜狠狠99网| 国产va精品免费观看| 亚洲av无码不卡久久| 午夜a级成人免费毛片| 久久精品熟女亚洲av麻豆| 国产免费人人看大香伊| A毛片毛片看免费| 亚洲视频一区在线| 最近中文字幕mv手机免费高清 | 色窝窝亚洲av网| 日韩一卡2卡3卡4卡新区亚洲 | 久久久无码精品亚洲日韩软件 | 亚洲av成人无码久久精品| 免费观看美女用震蛋喷水的视频| 亚洲天堂中文字幕在线观看| 操美女视频免费网站| 国产成人自产拍免费视频| 亚洲人精品午夜射精日韩| 中文字幕亚洲免费无线观看日本| 亚洲一级片在线播放| 青青草原亚洲视频| 亚洲免费闲人蜜桃| 一级免费黄色毛片| 亚洲欧洲日本国产| 红杏亚洲影院一区二区三区| 亚洲精品视频免费在线观看| 视频一区二区三区免费观看| 亚洲精品欧洲精品| 亚洲国产成人精品无码区在线观看 | 一级特黄a免费大片| 亚洲色最新高清av网站| 亚洲影院在线观看|