Android開發中可能會碰到如何發送郵件的困擾,之前我也查了相關的文檔,博友們也分享了不少的發送郵件的辦法,總共有3種把,我仔細閱讀了下,發現有的講的太過復雜跟麻煩,不夠清晰,我今天就來分享下我認為的最好用的辦法來解決該問題,使用Andorid-MAIL Jar包。首先我們先要下載以下四個文件
然后呢在Android平台上發送郵件呢,肯定先要檢查網絡的狀態,網絡狀態可用的情況下才能發送郵件成功啊(別往了獲取網絡信息需要在AndroidManifest.xml文件中加入相應的權限。 )
public boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); if (mNetworkInfo != null) { return mNetworkInfo.isAvailable(); } } return false;
下面一步就更簡單了直接看代碼注釋把,就能解決我們發送郵件的需求了!
//與網絡連接相關的操作都要在子線程中完成,當然也可以在Service服務里操作 class sendMessage extends Thread { @Override public void run() { // TODO Auto-generated method stub super.run(); try { //創建HtmlEmail類 HtmlEmail email = new HtmlEmail(); //填寫郵件的主機明,我這里使用的是163 email.setHostName("smtp.163.com"); email.setTLS(true); email.setSSL(true); //設置字符編碼格式,防止中文亂碼 email.setCharset("gbk"); //設置收件人的郵箱 email.addTo("123@qq.com"); //設置發件人的郵箱 email.setFrom("123@163.com"); //填寫發件人的用戶名和密碼 email.setAuthentication("123", "123"); //填寫郵件主題 email.setSubject("您好"); //填寫郵件內容 email.setMsg(s1 + "\n" + s2); //發送郵件 email.send(); } catch (EmailException e) { // TODO Auto-generated catch block Log.i("TAG", "---------------->"+e.getMessage()); } } }
好的以上就完成了android發送郵件的功能,大家也可以去研究下其他兩種發送郵件的方式。在這里分享下剛才所說的要用到的Jar包的分享地址。
android發送郵件所需要的mail的jar包