簡體   English   中英

使用 Android Intent 發送 HTML 郵件

[英]Send HTML mail using Android intent

我生成了一個 HTML 代碼(帶有<html><body></body></html>標簽)作為字符串。 現在我想將此 HTML 代碼作為 HTML 發送到郵件。 我的代碼如下。

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/html");
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"me@mydomain.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "I would like to buy the following");
intent.putExtra(Intent.EXTRA_TEXT, purchaseOrder());
startActivity(Intent.createChooser(intent, "sending mail"));

其中purchaseOrder()是將具有完整HTML 代碼的字符串傳遞給我的方法。 但是,盡管 GMail 客戶端在我的 Nexus1 上打開,但它具有包含所有 HTML 標簽的字符串,而不是實際的 HTML 視圖。 我嘗試了以下但出現錯誤。 GMail 崩潰了。

intent.putExtra(Intent.EXTRA_STREAM, purchaseOrder());

這對我有用:

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(body));
startActivity(Intent.createChooser(emailIntent, "Email:"));

但我注意到內聯樣式和圖像標簽被忽略了......

對於其他想要這樣做的人,請使用 android-javamailer 在幕后手動發送電子郵件(我已經完成了):

在 Android 中發送電子郵件而無需用戶干預(無意圖)

如果我沒看錯的話,你要找的是

   Html.fromHtml()

例如

Html.fromHtml("<a href="www.google.com"> Google</a>");

這將使谷歌成為一個超鏈接

這對我Intent.ACTION_SENDTO並且我的代碼在這里:

String mailId="yourmail@gmail.com";
    Intent emailIntent = new Intent(Intent.ACTION_SENDTO, 
                                    Uri.fromParts("mailto",mailId, null)); 
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject text here"); 
    // you can use simple text like this
    // emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,"Body text here"); 
    // or get fancy with HTML like this
    emailIntent.putExtra(
             Intent.EXTRA_TEXT,
             Html.fromHtml(new StringBuilder()
                 .append("<p><b>Some Content</b></p>")
             .append("<a>http://www.google.com</a>")
             .append("<small><p>More content</p></small>")
             .toString())
         );
    startActivity(Intent.createChooser(emailIntent, "Send email..."));

嘗試以下代碼:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_SUBJECT,getResources().getString(R.string.email_subject));
sendIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(getResources().getString(R.string.email_text)));
sendIntent.setType("text/plain");
startActivity(Intent.createChooser(sendIntent, "email"));

字符串.xml

<resources>    
<string name="email_subject">Download App for your smartphone.</string>
<string name="email_text"><![CDATA[Hey,<br/>I just downloaded App on my Android. 
<br/>It is a smartphone Manager.<br/>App is available for Android.<br/>
    Get it now from http://www.exampleapp.com/download]]></string>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM