Android開發中怎樣調用系統Email發送郵件(多種調用方式)


在Android中調用其他程序進行相關處理,幾乎都是使用的Intent,所以,Email也不例外,所謂的調用Email,只是說Email可以接收Intent並做這些事情

我們都知道,在Android中調用其他程序進行相關處理,幾乎都是使用的Intent,所以,Email也不例外。 

在Android中,調用Email有三種類型的Intent: 
Intent.ACTION_SENDTO 無附件的發送 
Intent.ACTION_SEND 帶附件的發送 
Intent.ACTION_SEND_MULTIPLE 帶有多附件的發送 

當然,所謂的調用Email,只是說Email可以接收Intent並做這些事情,可能也有其他的應用程序實現了相關功能,所以在執行的時候,會出現選擇框進行選擇。 

1.使用SENTTO發送 

Intent data=new Intent(Intent.ACTION_SENDTO); 
data.setData(Uri.parse("mailto:way.ping.li@gmail.com")); 
data.putExtra(Intent.EXTRA_SUBJECT, "這是標題"); 
data.putExtra(Intent.EXTRA_TEXT, "這是內容"); 
startActivity(data); 

Intent data=new Intent(Intent.ACTION_SENDTO); 
data.setData(Uri.parse("mailto:way.ping.li@gmail.com")); 
data.putExtra(Intent.EXTRA_SUBJECT, "這是標題"); 
data.putExtra(Intent.EXTRA_TEXT, "這是內容"); 
startActivity(data); 

通過向Intent中putExtra來設定郵件的相關參數。 

2.使用SEND發送 

Intent intent = new Intent(Intent.ACTION_SEND); 
String[] tos = { "way.ping.li@gmail.com" }; 
String[] ccs = { "way.ping.li@gmail.com" }; 
String[] bccs = {"way.ping.li@gmail.com"}; 
intent.putExtra(Intent.EXTRA_EMAIL, tos); 
intent.putExtra(Intent.EXTRA_CC, ccs); 
intent.putExtra(Intent.EXTRA_BCC, bccs); 
intent.putExtra(Intent.EXTRA_TEXT, "body"); 
intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); 

intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///mnt/sdcard/a.jpg")); 
intent.setType("image/*"); 
intent.setType("message/rfc882"); 
Intent.createChooser(intent, "Choose Email Client"); 
startActivity(intent); 

Intent intent = new Intent(Intent.ACTION_SEND); 
String[] tos = { "way.ping.li@gmail.com" }; 
String[] ccs = { "way.ping.li@gmail.com" }; 
String[] bccs = {"way.ping.li@gmail.com"}; 
intent.putExtra(Intent.EXTRA_EMAIL, tos); 
intent.putExtra(Intent.EXTRA_CC, ccs); 
intent.putExtra(Intent.EXTRA_BCC, bccs); 
intent.putExtra(Intent.EXTRA_TEXT, "body"); 
intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); 

intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///mnt/sdcard/a.jpg")); 
intent.setType("image/*"); 
intent.setType("message/rfc882"); 
Intent.createChooser(intent, "Choose Email Client"); 
startActivity(intent); 

很簡單,發送郵件中,有收件者,抄送者,密送者。 也就是分別通過 
Intent.EXTRA_EMAIL, 
Intent.EXTRA_CC, 
Intent.EXTRA_BCC 
來進行putExtra來設定的,而單個附件的發送,則使用Intent.EXTRA_STREAM來設置附件的地址Uri。 

3.使用SEND_MULTIPLE來進行多附件的發送 

Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); 
String[] tos = { "way.ping.li@gmail.com" }; 
String[] ccs = { "way.ping.li@gmail.com" }; 
intent.putExtra(Intent.EXTRA_EMAIL, tos); 
intent.putExtra(Intent.EXTRA_CC, ccs); 
intent.putExtra(Intent.EXTRA_TEXT, "body"); 
intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); 

ArrayList<uri> imageUris = new ArrayList<uri>(); 
imageUris.add(Uri.parse("file:///mnt/sdcard/a.jpg")); 
imageUris.add(Uri.parse("file:///mnt/sdcard/b.jpg")); 
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris); 
intent.setType("image/*"); 
intent.setType("message/rfc882"); 
Intent.createChooser(intent, "Choose Email Client"); 
startActivity(intent); 

Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); 
String[] tos = { "way.ping.li@gmail.com" }; 
String[] ccs = { "way.ping.li@gmail.com" }; 
intent.putExtra(Intent.EXTRA_EMAIL, tos); 
intent.putExtra(Intent.EXTRA_CC, ccs); 
intent.putExtra(Intent.EXTRA_TEXT, "body"); 
intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); 

ArrayList<uri> imageUris = new ArrayList<uri>(); 
imageUris.add(Uri.parse("file:///mnt/sdcard/a.jpg")); 
imageUris.add(Uri.parse("file:///mnt/sdcard/b.jpg")); 
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris); 
intent.setType("image/*"); 
intent.setType("message/rfc882"); 
Intent.createChooser(intent, "Choose Email Client"); 
startActivity(intent); 

發送多個附件,最主要的時候,通過putParcelableArrayListExtra將多個附件的Uri地址List設置進去就OK了。其實還是很簡單的。

Android開發中怎樣調用系統Email發送郵件(多種調用方式)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM