2011-04-15 85 views
1

我正在寫一個android應用程序,在某些時候我需要發送電子郵件到用戶指定的地址。要做到這一點,我打開一個電子郵件應用程序,並填寫主題和身體,允許用戶填寫收件人。發送的電子郵件應該是從預先指定的網頁中提取的html。從網上拉取html很簡單,但在通過電子郵件發送時不能正確顯示。我使用打開電子郵件應用程序的代碼是:Android的電子郵件HTML的網頁

intent = new Intent(Intent.ACTION_SEND); 
intent.setType("text/html"); 
intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.shareSubject)); 
intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body)); 
startActivity(Intent.createChooser(intent, "Email:")); 

這應該允許用戶選擇自己的電子郵件客戶端,如果所選擇的客戶端支持它發送的HTML電子郵件。我一直在測試已經報告支持它的Gmail應用程序,但是當收到電子郵件時,它是純文本的。

如果有幫助,我基本上是用得到的代碼的代碼是:

String input; 
String body = ""; 
try 
{ 
    URL url = new URL("<url>"); 
    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
    while((input = in.readLine()) != null) 
     body = body + input;  
} 
catch(MalformedURLException e) 
{ 

} 
catch(IOException e) 
{ 

} 

我不知道這是爲什麼失敗了,一切我已經看過說的Gmail應用程序支持發送HTML電子郵件,並且這是執行它的代碼。任何幫助,將不勝感激。

回答

0

您的問題與問題Send HTML mail using Android intent非常相似。

您可以在那裏看到一堆建議的解決方案。我寧願可用這裏的JavaMail API的Android的特定版本mdaddy的解決方案:

http://www.jondev.net/articles/Sending_Emails_without_User_Intervention_%28no_Intents%29_in_Android

這樣,您就不必打開(或依賴於)任何外部郵件應用程序。相反,您可以將電子郵件地址作爲應用程序內的輸入,並在幕後進行所有發送。

+0

謝謝,我嘗試了一個硬編碼地址,它工作的很好,但是,我不確定這是否是我的解決方案。這依賴於硬編碼的用戶,密碼和從電子郵件地址,但我希望電子郵件從用戶的電子郵件發送,而不需要他們自己填寫。我當然不想用代碼中的測試信息發佈它。 – Laser 2011-04-15 17:28:58