java邮件收发

时间:2023-11-24 22:27:08

http://blog.csdn.net/ycg01/article/details/1394465

2006-11-18 16:41 1259人阅读 评论(0) 收藏 举报

版权声明:本文为博主原创文章,未经博主允许不得转载。

一.邮件收发.

以gmail为例.(不知道为啥,用同一个帐户给自己收发,或者用两个帐户同时相互收发,会造成邮件收发混乱.估计与连接,和服务器端处理 有关.)正常的收发可以成功.

java邮件收发package cn.edu.nju.vicken;
java邮件收发
java邮件收发import java.io.File;
java邮件收发import java.util.ArrayList;
java邮件收发import java.util.Date;
java邮件收发import java.util.Properties;
java邮件收发
java邮件收发import javax.activation.DataHandler;
java邮件收发import javax.activation.FileDataSource;
java邮件收发import javax.mail.Authenticator;
java邮件收发import javax.mail.BodyPart;
java邮件收发import javax.mail.FetchProfile;
java邮件收发import javax.mail.Folder;
java邮件收发import javax.mail.Message;
java邮件收发import javax.mail.Multipart;
java邮件收发import javax.mail.PasswordAuthentication;
java邮件收发import javax.mail.Session;
java邮件收发import javax.mail.Store;
java邮件收发import javax.mail.Transport;
java邮件收发import javax.mail.Message.RecipientType;
java邮件收发import javax.mail.internet.InternetAddress;
java邮件收发import javax.mail.internet.MimeBodyPart;
java邮件收发import javax.mail.internet.MimeMessage;
java邮件收发import javax.mail.internet.MimeMultipart;
java邮件收发
java邮件收发class PopupAuthenticator extends Authenticator{
java邮件收发    
java邮件收发    String username=null;
java邮件收发    String password=null;
java邮件收发    public PopupAuthenticator(String user,String pass)
java邮件收发    {
java邮件收发        username = user;
java邮件收发        password = pass;
java邮件收发    
java邮件收发    }
java邮件收发    public PasswordAuthentication performCheck(String user,String pass)
java邮件收发    {
java邮件收发        username = user;
java邮件收发        password = pass;
java邮件收发        return getPasswordAuthentication();
java邮件收发    }
java邮件收发    protected PasswordAuthentication getPasswordAuthentication()
java邮件收发    {
java邮件收发        return new PasswordAuthentication(username, password);
java邮件收发    }
java邮件收发}
java邮件收发public class EmailProcessor {
java邮件收发    protected String smtp_host = "smtp.gmail.com";
java邮件收发    protected String pop3_host = "pop.gmail.com";
java邮件收发    protected String pop3_port = "995";
java邮件收发    protected String smtp_port = "465";
java邮件收发    protected String user = "";
java邮件收发    protected String password = "";
java邮件收发    
java邮件收发    private Session mailsessionpop3 = null;
java邮件收发    private Session mailsessionsmtp = null;
java邮件收发    public EmailProcessor(String user,String password){
java邮件收发        this.user = user;
java邮件收发        this.password = password;
java邮件收发    }
java邮件收发    
java邮件收发    private void createSessionPop3(){
java邮件收发        if(mailsessionpop3==null){
java邮件收发            Properties   props   =   System.getProperties();  
java邮件收发            props.put("mail.pop3.host", pop3_host);
java邮件收发            props.put("mail.pop3.port", pop3_port);
java邮件收发            props.put("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
java邮件收发            props.put("mail.pop3.socketFactory.fallback", "false");
java邮件收发            props.put("mail.pop3.socketFactory.port", pop3_port);
java邮件收发            
java邮件收发            PopupAuthenticator popAuthenticator = new PopupAuthenticator(user,password);
java邮件收发            mailsessionpop3 = Session.getDefaultInstance(props,popAuthenticator); 
java邮件收发        }
java邮件收发    }
java邮件收发    
java邮件收发    private void createSessionSmtp(){
java邮件收发        if(mailsessionsmtp==null){
java邮件收发            Properties   props   =   System.getProperties();  
java邮件收发            props.put("mail.smtp.host", smtp_host);
java邮件收发            props.put("mail.smtp.port", smtp_port);
java邮件收发            props.put("mail.smtp.auth","true");
java邮件收发            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
java邮件收发            props.put("mail.smtp.socketFactory.fallback", "false");
java邮件收发            props.put("mail.smtp.socketFactory.port", smtp_port);
java邮件收发            
java邮件收发            PopupAuthenticator popAuthenticator = new PopupAuthenticator(user,password);
java邮件收发            mailsessionsmtp = Session.getDefaultInstance(props,popAuthenticator); 
java邮件收发        }
java邮件收发    }
java邮件收发    
java邮件收发    public ArrayList getAllEmail() throws Exception{
java邮件收发        createSessionPop3();
java邮件收发        
java邮件收发        ArrayList ret = new ArrayList();
java邮件收发
java邮件收发        Store store = mailsessionpop3.getStore("pop3");
java邮件收发        store.connect();
java邮件收发        Folder folder = store.getFolder("INBOX");
java邮件收发        folder.open(Folder.READ_ONLY);
java邮件收发        Message[] messages = folder.getMessages();
java邮件收发        for (int i = 0; i < messages.length; i++) {
java邮件收发            ret.add(messages[i].getSubject());
java邮件收发        }
java邮件收发        return ret;
java邮件收发    }
java邮件收发    
java邮件收发    public void sendEmail(String recv,String title,String text,File file) throws Exception{
java邮件收发        createSessionSmtp();
java邮件收发        
java邮件收发        MimeMessage mimeMsg =new MimeMessage(mailsessionsmtp);
java邮件收发        mimeMsg.setFrom(new InternetAddress(user+"@gmail.com"));
java邮件收发        mimeMsg.setRecipients(RecipientType.TO,InternetAddress.parse(recv+"@gmail.com"));
java邮件收发        mimeMsg.setSubject(title);
java邮件收发        mimeMsg.setSentDate(new Date());
java邮件收发        mimeMsg.setText(text);
java邮件收发        
java邮件收发        BodyPart bp = new MimeBodyPart();
java邮件收发        FileDataSource fileds = new FileDataSource(file);
java邮件收发        bp.setDataHandler(new DataHandler(fileds));
java邮件收发        bp.setFileName(fileds.getName());
java邮件收发        Multipart mp = new MimeMultipart();;
java邮件收发        mp.addBodyPart(bp);
java邮件收发        mimeMsg.setContent(mp);
java邮件收发        Transport.send(mimeMsg);
java邮件收发    }
java邮件收发}