无花的空间--http://wuhua.3geye.net-- 您今天UCWEB了吗?--http://www.ucweb.com

当你来到我的空间的时候,你会看到很多Google,Nokia,Mobile,J2ME ,Android,3G,无线开发,手机软件,手机软件开发等与Google,手机相关的文章,你千万不要惊讶。这就是我一个专注Google,无线开发的无花。传播知识,分享经验,技术交流是我开空间的直接目的。当然如果有项目开发,我还是很希望赚点外快的。

用户操作
[即时聊天] [发私信] [加为好友]
无花ID:gooogledev
40544次访问,排名2971,好友20人,关注者24人。
J2EE 2年的开发时间,
J2ME 2年的开发时间
gooogledev的文章
原创 80 篇
翻译 0 篇
转载 3 篇
评论 201 篇
无花的公告

人要吃很多苦才可以长大!

踏实平凡人应该遵守的原则!

与我TM

gooogledev@gmail.com

友情链接

我的j2me创意

Wap浏览器的源代码

用自己写的rms引擎写的电话本

RSS订阅此博客  
用抓虾订阅此博客
用google订阅此博客
用bloglines订阅此博客
    网络封神榜 | 饶荣庆
最近评论
22:main()在哪个.java中
ant-shopping:I support author's viewpoint, hoped that will have later also more better articles,
abercrombie fitch handbag
ptsell:I support author's viewpoint, hoped that will have later also more better articles,
Balenciaga Bags
真的假的,屁股上的痣也能拍出来?
leo2012:奇怪,怎么下的wap explorer不能访问wap站点
文章分类
收藏
    相册
    j2me创意图片
    j2me教程
    我的照片
    我的链接
    3G视线
    EasyMF J2ME框架
    Lucene中国
    我的Google
    无花的博客
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创  一个读取Gmail邮件的简单程序收藏

    新一篇: 我的j2me创意--Wap浏览器的源代码 | 旧一篇: 游戏中动画的基础

    关键字: 企业应用       
          兄弟我理论性的东西说不出来,不过实际运用咱还是有办法的
    前几天由于工作需要,想了解下关于支持ssl的邮件收发,按照以前普通的做法是行不通的,所以就上网东找找,西瞧瞧。发现了个好东西,并且实验成功。
          那天本想来javaeye看看有没有人有相关的经验,找了老半天,连个屁也没闻到,我就说我们,我们这些做程序员的不能老是吹吹水,谈谈道理,我们得拿出点实际的东西出来,就想fins一样,我就很佩服他的贡献精神。
          不说废话了,看看源代码,大家有空也可以实验下。还真有用
    package org.job.six;

     
    import java.io.UnsupportedEncodingException;
    import java.security.Security;
    import java.util.Properties;

    import javax.mail.FetchProfile;
    import javax.mail.Folder;
    import javax.mail.Message;
    import javax.mail.Session;
    import javax.mail.Store;
    import javax.mail.URLName;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeUtility;

    import org.job.util.Logger;
    import org.job.util.mail.ApplicationContext;

    /**
     * 用于收取Gmail邮件
     * 
     * 
    @author wuhua
     
    */
    public class GmailFetch {
        
    private static Logger logger = Logger.getLogger(GmailFetch.class);
        
    public static void main(String argv[]) throws Exception {
            logger.debug(
    "开始读取邮件");
            Security.addProvider(
    new com.sun.net.ssl.internal.ssl.Provider());
            
    final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

            
    // Get a Properties object
            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");

            
    // 以下步骤跟一般的JavaMail操作相同
            Session session = Session.getDefaultInstance(props, null);

            
    // 请将红色部分对应替换成你的邮箱帐号和密码
            URLName urln = new URLName("pop3", ApplicationContext.POP3, 995null,
                    ApplicationContext.GMAIL_MAIL_NAME,
                    ApplicationContext.GMAIL_MAIL_PASSWORD);
            Store store 
    = session.getStore(urln);
            Folder inbox 
    = null;
            
    try {
                store.connect();
                inbox 
    = store.getFolder("INBOX");
                inbox.open(Folder.READ_ONLY);
                FetchProfile profile 
    = new FetchProfile();
                profile.add(FetchProfile.Item.ENVELOPE);
                Message[] messages 
    = inbox.getMessages();
                inbox.fetch(messages, profile);
                logger.debug(
    "收件箱的邮件数:" + messages.length);
                
    for (int i = 0; i < messages.length; i++) {
                    
    // 邮件发送者
                    String from = decodeText(messages[i].getFrom()[0].toString());
                    InternetAddress ia 
    = new InternetAddress(from);
                    logger.debug(
    "发信人:" + ia.getPersonal() + '('
                            
    + ia.getAddress() + ')');
                    
    // 邮件标题
                    logger.debug("主题:" + messages[i].getSubject());
                    
    // 邮件大小
                    logger.debug("邮件大小:" + messages[i].getSize());
                    
    // 邮件发送时间
                    logger.debug("发送日期:" + messages[i].getSentDate());
                }
            } 
    finally {
                
    try {
                    inbox.close(
    false);
                } 
    catch (Exception e) {
                }
                
    try {
                    store.close();
                } 
    catch (Exception e) {
                }
            }
            
            logger.debug(
    "读取邮件完毕");
        }

        
    protected static String decodeText(String text)
                
    throws UnsupportedEncodingException {
            
    if (text == null)
                
    return null;
            
    if (text.startsWith("=?GB"|| text.startsWith("=?gb"))
                text 
    = MimeUtility.decodeText(text);
            
    else
                text 
    = new String(text.getBytes("ISO8859_1"));
            
    return text;
        }

    }
    package org.job.six;

     
    import java.io.UnsupportedEncodingException;
    import java.security.Security;
    import java.util.Properties;

    import javax.mail.FetchProfile;
    import javax.mail.Folder;
    import javax.mail.Message;
    import javax.mail.Session;
    import javax.mail.Store;
    import javax.mail.URLName;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeUtility;

    import org.job.util.Logger;
    import org.job.util.mail.ApplicationContext;

    /**
     * 用于收取Gmail邮件
     * 
     * 
    @author wuhua
     
    */
    public class GmailFetch {
        
    private static Logger logger = Logger.getLogger(GmailFetch.class);
        
    public static void main(String argv[]) throws Exception {
            logger.debug(
    "开始读取邮件");
            Security.addProvider(
    new com.sun.net.ssl.internal.ssl.Provider());
            
    final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

            
    // Get a Properties object
            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");

            
    // 以下步骤跟一般的JavaMail操作相同
            Session session = Session.getDefaultInstance(props, null);

            
    // 请将红色部分对应替换成你的邮箱帐号和密码
            URLName urln = new URLName("pop3", ApplicationContext.POP3, 995null,
                    ApplicationContext.GMAIL_MAIL_NAME,
                    ApplicationContext.GMAIL_MAIL_PASSWORD);
            Store store 
    = session.getStore(urln);
            Folder inbox 
    = null;
            
    try {
                store.connect();
                inbox 
    = store.getFolder("INBOX");
                inbox.open(Folder.READ_ONLY);
                FetchProfile profile 
    = new FetchProfile();
                profile.add(FetchProfile.Item.ENVELOPE);
                Message[] messages 
    = inbox.getMessages();
                inbox.fetch(messages, profile);
                logger.debug(
    "收件箱的邮件数:" + messages.length);
                
    for (int i = 0; i < messages.length; i++) {
                    
    // 邮件发送者
                    String from = decodeText(messages[i].getFrom()[0].toString());
                    InternetAddress ia 
    = new InternetAddress(from);
                    logger.debug(
    "发信人:" + ia.getPersonal() + '('
                            
    + ia.getAddress() + ')');
                    
    // 邮件标题
                    logger.debug("主题:" + messages[i].getSubject());
                    
    // 邮件大小
                    logger.debug("邮件大小:" + messages[i].getSize());
                    
    // 邮件发送时间
                    logger.debug("发送日期:" + messages[i].getSentDate());
                }
            } 
    finally {
                
    try {
                    inbox.close(
    false);
                } 
    catch (Exception e) {
                }
                
    try {
                    store.close();
                } 
    catch (Exception e) {
                }
            }
            
            logger.debug(
    "读取邮件完毕");
        }

        
    protected static String decodeText(String text)
                
    throws UnsupportedEncodingException {
            
    if (text == null)
                
    return null;
            
    if (text.startsWith("=?GB"|| text.startsWith("=?gb"))
                text 
    = MimeUtility.decodeText(text);
            
    else
                text 
    = new String(text.getBytes("ISO8859_1"));
            
    return text;
        }

    }


    上面代码,完全可以封装成一个收取ssl邮件的库
    改天有时间整理下关于发邮件的方法
     

    发表于 @ 2007年03月30日 14:57:00|评论(loading...)|编辑

    新一篇: 我的j2me创意--Wap浏览器的源代码 | 旧一篇: 游戏中动画的基础

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 无花