如何在Android中在HTML电子邮件中包含图像

如何在Android中在HTML电子邮件中包含图像,android,html-email,Android,Html Email,我试图在我的电子邮件正文中使用HTML发送图像,但图像不发送。我不知道我做错了什么。我尝试使用以下代码: Intent i = new Intent(Intent.ACTION_SEND_MULTIPLE); i.setType("text/html"); String tempStr = "<html><head><title></title><style> b{ color: red} </style&

我试图在我的电子邮件正文中使用HTML发送图像,但图像不发送。我不知道我做错了什么。我尝试使用以下代码:

Intent i = new Intent(Intent.ACTION_SEND_MULTIPLE);
i.setType("text/html");
String tempStr = "<html><head><title></title><style> b{ color: red}             </style></head><body><img src=\""+ "images/assaultoffences.png" + "\"><b>quick</b></body>   </html>";
i.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(tempStr));
i.putExtra(Intent.EXTRA_EMAIL, new String[] {"ashwini.soma@gmail.com"});
i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
startActivity(i);

try {
    startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(SavePage.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
Intent i=新意图(Intent.ACTION\u SEND\u MULTIPLE);
i、 setType(“text/html”);
字符串tempStr=“b{color:red}quick”;
i、 putExtra(Intent.EXTRA_TEXT,Html.fromHtml(tempStr));
i、 putExtra(Intent.EXTRA_电子邮件,新字符串[]{”ashwini。soma@gmail.com"});
i、 putExtra(Intent.EXTRA_主题,“电子邮件主题”);
星触觉(i);
试一试{
startActivity(Intent.createChooser(i,“发送邮件…”);
}捕获(android.content.ActivityNotFoundException ex){
Toast.makeText(SavePage.this,“没有安装电子邮件客户端)”,Toast.LENGTH_SHORT.show();
}

图像需要放在某个地方。当用户收到电子邮件时,客户端将查找不存在的图像“images/assaultoffices.png”。 把它放在某个地方,然后在电子邮件中指定完整的URL,例如,嘿,你可以在解决方案中使用参考

我希望这能帮助你解决你的问题


谢谢。

仅仅因为html引用了图像,并不意味着电子邮件应用程序将读取html,解析它,找到引用的图像,将它们附加到电子邮件,并将引用更改为内部引用

已经有一个描述如何在发送电子邮件时将文件附加到电子邮件的方法


演示如何从html中引用附加的图像,使其显示在正文中(至少对Outlook有效)。

令人沮丧的是,Android本机似乎不支持这一点。一种解决方法是使用
javamail
并自己解决。我所做的是使用库帮助将我的
HTML
写入一个文件并将其附加到电子邮件:

final Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
String html = "<div>Place Your HTML here.</div>";
shareIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(html));
shareIntent.setType("text/html");
$.with(this).write(html, FileLocation.EXTERNAL, "email.html", false, false, new Function() {

    @Override
    public void invoke($ droidQuery, Object... params) {
        String file = ((File) params[1]).getAbsolutePath();
        shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file));
        startActivity(shareIntent);
    }
}, new Function() {
    @Override
        public void invoke($ droidQuery, Object... params) {
            Log.e("$", (String) params[1]);
        }
});
final Intent shareIntent=新意图(Intent.ACTION\u SEND);
shareIntent.putExtra(Intent.EXTRA_SUBJECT,“SUBJECT”);
String html=“将您的html放在此处。”;
shareIntent.putExtra(Intent.EXTRA_TEXT,Html.fromHtml(Html));
setType(“text/html”);
$.with(this).write(html,FileLocation.EXTERNAL,“email.html”,false,false,new Function()){
@凌驾
public void invoke($droidQuery,Object…params){
字符串文件=((文件)参数[1])。getAbsolutePath();
putExtra(Intent.EXTRA_流,Uri.parse(“文件:/”+文件));
startActivity(shareIntent);
}
},新函数(){
@凌驾
public void invoke($droidQuery,Object…params){
Log.e(“$”,(字符串)参数[1]);
}
});
然后在html
顶部添加此块(在Android电子邮件中格式也很差):


查看此电子邮件时遇到问题?打开要在web浏览器中查看的附件。

如果您正在考虑第一种方法(Java Mail),我建议使用
droidQuery
的扩展,它使用库提供了一个简化的API。

对您的图像src的引用正确吗?是的,我的图像是正确的。但是在body comming small symbol中,您只有13个问题,大多数问题都有多个答案。如果至少有一个问题的答案令你满意,那么你应该真正接受每个问题的最佳答案。
<div style="background: gray; color: black; align='center'" >
    Trouble viewing this email? Open the attachment to view in your web browser.
</div>