我正在制定一个概念,我必须在电子邮件正文中嵌入 html table tag 。我尝试了一些代码,它在 2.2和2.3 < / strong>操作系统版本,但相同的代码不适用于最新的操作系统版本,如4.0等。
我也试过了Spannable and Html.fromHtml()
,但它也没有用。
以下是我的代码,它适用于2.2和2.3操作系统版本:
//SEND EMAIL
private void sendEmail(String imageUri) throws WriterException{
//....................Prepare share email data.............................
int itemNumber=0;
titleBuffer=new StringBuffer();
titleBuffer.append("<html><body><table border="+"1"+"><tr border="+"0"+"><th>Item number</th>"+
"<th>Barcode</th>"+"<th>Product name</th>"+"<th>Quantity</th></tr>");
for(int i=0;i<_productList.size();i++){
itemNumber=i+1;
titleBuffer.append("<tr border="+"0"+"><td>"+itemNumber+"</td>"+
"<td>"+_productList.get(i).getProductBarcode()+"</td>"+"<td>"+_productList.get(i).getProductName()+"</td>"+
"<td>"+_productList.get(i).getProductQuantity()+"</td></tr>");
/*titleBuffer.append("<tr border="+"0"+"><td>"+itemNumber+"</td>"+
"<td>"+_productList.get(i).getProductBarcode()+"</td>"+"<td>"+_productList.get(i).getProductName()+"</td>"+
"<td>"+_productList.get(i).getProductQuantity()+"</td>"+"<td>"+
"<img src="+"/'data:image/png;base64, "+generateBarcodeImage(GenerateBarcode.encodeAsBitmap(_productList.get(i).getProductBarcode(),
BarcodeFormat.CODE_128, 600, 300))+"/'/></td></tr>");*/
}
titleBuffer.append("</table></body></html>");
SpannedString bar = new SpannedString(titleBuffer.toString());
if(_productList.size()==0){
titleBuffer.append("NA");
}
//..........................................................................
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,"");
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Shopping List");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,titleBuffer.toString());
emailIntent.putExtra(Intent.EXTRA_STREAM, emailImageUri);
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
}
还可以找到附带的图像,证明它在2.2和2.3 OS版本中有效。
答案 0 :(得分:2)
这取决于正在处理它的电子邮件客户端。并非所有电子邮件客户端都支持所有HTML标记.Anast Gmail不支持它。它仅适用于基本标记,例如<b>
,<i>
等。它不适用于<img>
标记。
请参阅以下帖子以获取更多信息,
Android, How to send HTML email and force Android to send it through G-Mail not other applications?
How to send html content with image through android default email client?
答案 1 :(得分:0)
尝试以下代码: -
final Intent shareIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:"));
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "The Subject");
shareIntent.putExtra(
Intent.EXTRA_TEXT,
Html.fromHtml(new StringBuilder()
.append("<p><b>Some Content</b></p>")
.append("<small><p>More content</p></small>")
.toString())
);
了解更多信息,请参阅以下链接: -
android - How to format the text as table in email body of email client
http://blog.iangclifton.com/2010/05/17/sending-html-email-with-android-intent/