您的位置:首页 > 移动开发 > Android开发

android平台收发邮件教程

2015-07-04 17:25 387 查看
http://blog.sina.com.cn/s/blog_56e5b1410101lael.html

一、开发前准备

1、下载jar包,下载地址

http://code.google.com/p/javamail-android/downloads/list

additionnal.jar、mail.jar 和 activation.jar

2、在eclipse中新建一个android app工程

3、用鼠标将下载下来的三个jar包拖动到新建工程的lib文件加下,出现提示,选择copy

4、在新建的工程文件夹点右键属性,选择Java Build Path,右面选择libraries,点击右面的 Add JARs,选择那3个jar包,点击OK

5、打开工程的AndroidManifest.xml文件,加上

 <uses-permission android:name="android.permission.INTERNET" />

表示可以访问网络,并将android:minSdkVersion 设置为"11"

6、在主程序进行邮件操作前加上以下代码

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()  

        .detectDiskReads()  

        .detectDiskWrites()  

        .detectNetwork()

        .penaltyLog()  

        .build());  

 StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()  

        .detectLeakedSqlLiteObjects()  

        .detectLeakedClosableObjects()  

        .penaltyLog()  

        .penaltyDeath()  

        .build());

主要原因是,android4.0以后的版本不允许在主程序中进行联网操作,否则会报如下错误

android.os.NetWorkOnMainException和android.os.NetWorkOnMainThreadException

二、收取邮件

提示:通过pop3方式收邮件,收取第一遍发现有邮件后,如果没有新的邮件产生,再次收取时会收不到任何邮件(也就是说得到的是NULL)。

1、在工程包内新建2个JAVA类,MailList.java和ReceiveMail.java,把以下代码拷贝进去

(1)MailList.java

--------------------------------------------------------------------------------------------

package 你的包名;

import java.util.*;

import javax.mail.Folder;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Store;

import javax.mail.internet.MimeMessage;

public class MailList {

    private String host ; //pop3服务器

    private String user ; //邮箱

    private String password ; // 密码

   

    private static MailList instance;

    private List mailList;

    private HashMap serviceHashMap;

   

    public static MailList getInstance(){

     if(instance==null){

      instance=new MailList("pop.163.com","example@163.com","000000");

     }

     return instance;

    }

   

    public String getUpdateUrlStr() throws Exception{

     String urlStr=null;

     if(serviceHashMap==null){

      serviceHashMap=this.getServeHashMap();

     }

     if(serviceHashMap.get("update")==1){

      urlStr=mailList.get(1).getSubject();

     }

     return urlStr;

    }

   

    public String getUserHelp() throws Exception{

     String userandmoney=null;

     if(serviceHashMap==null){

      serviceHashMap=this.getServeHashMap();

     }

     if(serviceHashMap.get("userhelp")==1){

      userandmoney=mailList.get(3).getSubject();

     }

     return userandmoney;

    }

   

    public int getAllUserHelp() throws Exception{

     String userandmoney=null;

     int money=0;

     if(serviceHashMap==null){

      serviceHashMap=this.getServeHashMap();

     }

     if(serviceHashMap.get("userhelp")==1){

      userandmoney=mailList.get(3).getSubject();

     }

     if(userandmoney!=null && userandmoney.contains("all-user-100")){

      money=Integer.parseInt(userandmoney.substring(userandmoney.lastIndexOf("-"+1),

userandmoney.length()));

     }

     return money;

    }

    public boolean getAdControl() throws Exception{

     String ad=null;

     if(serviceHashMap==null){

      serviceHashMap=this.getServeHashMap();

     }

     if(serviceHashMap.get("adcontrol")==1){

      ad=mailList.get(2).getSubject();

     }

     if(ad.equals("ad=close")){

      return false;

     }

     return true;

    }

   

    public HashMap getServeHashMap() throws Exception{

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: