android邮件发送几种方式

 android中发送邮件我大概发现了3种,代码如下

Java代码  收藏代码

  1. package src.icetest;  

  2.   

  3. import org.apache.commons.mail.EmailException;  

  4. import org.apache.commons.mail.HtmlEmail;  

  5.   

  6. import android.app.Activity;  

  7. import android.content.Intent;  

  8. import android.os.Bundle;  

  9. import android.util.Log;  

  10.   

  11. public class IcetestActivity extends Activity {  

  12.     /** Called when the activity is first created. */  

  13.     @Override  

  14.     public void onCreate(Bundle savedInstanceState) {  

  15.         super.onCreate(savedInstanceState);  

  16.         setContentView(R.layout.main);  

  17.         Log.i("IcetestActivity""start ice test step 1");  

  18.         // sendMailIntent();  

  19.         //sendMailByApache();  

  20.         sendMailByJavaMail();  

  21.     }  

  22.   

  23.     // you need config the mail app in your android moble first,and the mail will send by the mail app. and there are one big bug:  

  24.     //you can't send the mail Silently and you need to click the send button  

  25.     public int sendMailByIntent() {  

  26.         String[] reciver = new String[] { "[email protected]" };  

  27.         String[] mySbuject = new String[] { "test" };  

  28.         String myCc = "cc";  

  29.         String mybody = "测试Email Intent";  

  30.         Intent myIntent = new Intent(android.content.Intent.ACTION_SEND);  

  31.         myIntent.setType("plain/text");  

  32.         myIntent.putExtra(android.content.Intent.EXTRA_EMAIL, reciver);  

  33.         myIntent.putExtra(android.content.Intent.EXTRA_CC, myCc);  

  34.         myIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, mySbuject);  

  35.         myIntent.putExtra(android.content.Intent.EXTRA_TEXT, mybody);  

  36.         startActivity(Intent.createChooser(myIntent, "mail test"));  

  37.   

  38.         return 1;  

  39.   

  40.     }  

  41.    /*this method can't be used in android mobile successful,but it can run normally in PC. 

  42.     Because it will cause the java.lang.NoClassDefFoundError: javax.activation.DataHandler error 

  43.     May be there are some way to solove it ......there are always javax package not found in android virtual mobile. 

  44.     By the way ,the method use Apache mail jar       

  45.     */  

  46.     public int sendMailByApache() {  

  47.   

  48.         try {  

  49.             HtmlEmail email = new HtmlEmail();  

  50.             // 这里是发送服务器的名字  

  51.             email.setHostName("smtp.gmail.com");  

  52.             // 编码集的设置  

  53.             email.setTLS(true);  

  54.             email.setSSL(true);  

  55.   

  56.             email.setCharset("gbk");  

  57.             // 收件人的邮箱  

  58.             email.addTo("[email protected]");  

  59.             // 发送人的邮箱  

  60.             email.setFrom("[email protected]");  

  61.             // 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码  

  62.             email.setAuthentication("wcf1000""00000");  

  63.             email.setSubject("测试Email Apache");  

  64.             // 要发送的信息  

  65.             email.setMsg("测试Email Apache");  

  66.             // 发送  

  67.             email.send();  

  68.         } catch (EmailException e) {  

  69.             // TODO Auto-generated catch block  

  70.             Log.i("IcetestActivity", e.getMessage());  

  71.         }  

  72.   

  73.         return 1;  

  74.     }  

  75. /* 

  76.  * this method use javamail for android ,it is a good jar, 

  77.  * you can see the demo in http://www.jondev.net/articles/Sending_Emails_without_User_Intervention_(no_Intents)_in_Android 

  78.  * and you also need three jars ,which I offered in attachement 

  79.  *  

  80.  * */  

  81.     public int sendMailByJavaMail() {  

  82.         Mail m = new Mail("[email protected]""XXXXX");  

  83.         m.set_debuggable(true);  

  84.         String[] toArr = {"[email protected]"};   

  85.         m.set_to(toArr);  

  86.         m.set_from("[email protected]");  

  87.         m.set_subject("This is an email sent using icetest from an Android device");  

  88.         m.setBody("Email body. test by Java Mail");  

  89.         try {  

  90.             //m.addAttachment("/sdcard/filelocation");   

  91.             if(m.send()) {   

  92.             Log.i("IcetestActivity","Email was sent successfully.");  

  93.                           

  94.             } else {  

  95.                 Log.i("IcetestActivity","Email was sent failed.");  

  96.             }  

  97.         } catch (Exception e) {  

  98.             // Toast.makeText(MailApp.this,  

  99.             // "There was a problem sending the email.",  

  100.             // Toast.LENGTH_LONG).show();  

  101.             Log.e("MailApp""Could not send email", e);  

  102.         }  

  103.   

  104.         return 1;  

  105.     }  

  106. }  


你可能感兴趣的:(android邮件发送几种方式)