注意:我不想将图像附加到电子邮件中
我想在电子邮件正文中显示图片,
我已经尝试了HTML图像标记<img src=\"http://url/to/the/image.jpg\">"
,我得到了输出,你可以在我的问题中看到如何在电子邮件正文中添加图像,所以我累了Html.ImageGetter
.
它对我不起作用,它也给了我相同的输出,所以我怀疑是否可以这样做,
我的代码
Intent i = new Intent(Intent.ACTION_SEND);
i.putExtra(Intent.EXTRA_EMAIL,new String[] {"abc@gmail.com"});
i.putExtra(Intent.EXTRA_TEXT,
Html.fromHtml("Hi <img src='http://url/to/the/image.jpg'>",
imgGetter,
null));
i.setType("image/png");
startActivity(Intent.createChooser(i,"Email:"));
private ImageGetter imgGetter = new ImageGetter() {
public Drawable getDrawable(String source) {
Drawable drawable = null;
try {
drawable = getResources().getDrawable(R.drawable.icon);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight());
} catch (Exception e) {
e.printStackTrace();
Log.d("Exception thrown",e.getMessage());
}
return drawable;
}
};
Run Code Online (Sandbox Code Playgroud)
更新1:如果我使用ImageGetter
代码TextView
我能够获取文本和图像,但我无法在电子邮件正文中看到图像
这是我的代码:
TextView t = null;
t = (TextView)findViewById(R.id.textviewdemo); …
Run Code Online (Sandbox Code Playgroud) 众所周知,可以使用base64编码将外部资源(如图像)嵌入到html文件中:
<img src="data:image/png;base64,iVBORw0KGgoAAAANS..." />
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种纯粹的基于浏览器的javascript方式来遍历一个html页面并将所有外部资源嵌入到文件中,所以当我说$("html").html()
,它返回所有页面的内容.甚至包括其外部资源.
这是有道理的,我正在尝试使用我服务器上的无头浏览器将网页下载到单个文件中.
我的问题如下:
我有我的代码设置来读取特定帐户的电子邮件.那部分完美无缺.
问题在于解析电子邮件消息.分隔附件和电子邮件正文(包含内嵌图像).
我的代码是这样的:
Void readMessages(Folder folder){
Message[] messages = folder.getMessages();
// loading of message objects.
for (int messageNumber = 0; messageNumber < messages.length; messageNumber++) {
final Message currentMessage = messages[messageNumber];
logger.info("Handling the mail with subject " + currentMessage.getSubject());
logger.info("Content type for the current message is " + currentMessage.getContentType());
final String messageFileName = currentMessage.getFileName();
logger.info("File name for the message " + messageFileName + ". File name is blank "
+ StringUtils.isBlank(messageFileName));
Object messageContentObject = currentMessage.getContent();
if (messageContentObject instanceof Multipart) { …
Run Code Online (Sandbox Code Playgroud) 我有一个简单的MailApp来发送HTML格式的文本.我遇到的一个小问题是:如何在该文本中插入内嵌图像?例如,我想为荷兰文本添加荷兰语标志,为法语内容添加法国国旗.
我假设只使用HTML代码就可以完成这项工作.但是,唉,没有这样的运气.这只是我需要的一个小图像,内容下面没有大图像.我怎么能做到这一点?
MailApp.sendEmail(mailaddress, subject, "" ,
{ htmlBody: bodyNL + bodyFR })
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Java GWT编写内联映像.但是图像不显示:
<img src="data:unknown;base64,Pz9QAQSkZJRgABAQAAAQABAA9Q9AAUDBAcJCggFBQkGCAYGBggFBQUFCAgGBQYGBwUHBwUGBgUHChALBwgaCQUFDBUMDhERHxMfBxciGBYSGBAeEx4BBQUFCAcIDwgJCBIIDA4SEhISEhISEh4SEhIeEhIeHhISEh4eEhIeHh4SHh4eEhISEhISHh4eEhIeEh4eEhISHfz9ABEIAGAAYAMBIgACEQEDEQD9QAcAAACAQUBAAAAAAAAAAAAAAAAAQcCAwQGCAT9QAvEAACAQIEBAMHBQAAAAAAAAAAAQIDEQQFEiEGBzFBE1FyIjJhYnD9RRSPz9P0AGwEBAAIDAQEAAAAAAAAAAAAAAAECBAUHBgL9QAgEQEAAgEFAAMBAAAAAAAAAAAAAQIDBAUREiETMmExP0ADAMBAAIRAxEAPw9M0zKv1jbfz9bP0SUlJdkZtD0RV4JeRluEP0jP0tP0URVGNiorZSf9R9MP0dT0aVH9RznWgcfz9M379RET9Pz9GXo/EzNuW1FYUv9SXN1Wfz9Dj8/UpcHP05RjsQVM2S9XPz9Rf9Vb9Pz9SxxVL9JpDcWoNRzxuXYQXAYmFwAZV79WNiOfz9JX4vZEY8XoyPz9EnR6Lvz9X8PPz9My9vVv9P00c0lyRl8dOz9Ogr9P1GP0RBcG4YS79P07MF9dv09P1fRxwWk6R0hpLPz9XP1/Ux80cv1bf0CPz9OxH9UFwAP1qR3H9TP0CJg/Ffz9Pz9TlYVSkpxS39WL9S0T9a04cm8cZX4NSU39P0XEv0+1r9TPz9Pz9P1TTw9aEpWTv06Nfz9VP07NFn9cM3fF1eP1GAzRzP0hL0wSX9X04Jg5aZSL9P1rWr9Yv1fEi5ZOv1zMf0ND2UjJfz9Pz9HnZ9VoqFPymIPz9af1yD2QOIWJGP1ZQf1NXdmQBxXP0SUfz9P11aP0tMjv9SUpP1/Rf1BP1NTD9Yz9Pz9TT9X9HvX9XSwiT1sQT9NTT9W0zbv0mXv06P0ZP1RSfz9Rb9f0ADExgVQYAABcBDQ9cTH9Fgb9Sy79YzsPS0l8GE8gQAEAYCAYAAAAAAAAAPz9">
Run Code Online (Sandbox Code Playgroud)
它接触到我的原因是,我用base64编写错误的方法,或者charset是错误的.
对于返回我在网络上找到的以下pic代码时,一切正常(所以不是,我的浏览器无法显示内嵌图像):
<img src="data:unknown;base64,R0lGODlhDwAPAKECAAAAzMzM/////wAAACwAAAAADwAPAAACIISPeQHsrZ5ModrLlN48CXF8m2iQ3YmmKqVlRtW4MLwWACH+H09wdGltaXplZCBieSBVbGVhZCBTbWFydFNhdmVyIQAAOw==">
Run Code Online (Sandbox Code Playgroud)
这是我如何生成我的图片代码.我打开一个网址并尝试对结果进行base64编码:
try {
IoProvider.get().makeRequestAsText(url,
new ResponseReceivedHandler<String>() {
public void onResponseReceived(ResponseReceivedEvent<String> event) {
final Response<String> response = event.getResponse();
if (response.getStatusCode() == HTTP_OK){
callback.onSuccess("data:unknown;base64,"
+ Base64.encode(response.getText()));
}
}
}, options);
} catch ...
Run Code Online (Sandbox Code Playgroud)
这是我使用的base64编码器:http://snipt.net/tweakt/gwt-base64/
任何想法,为什么生成的图像无效?
编辑:
我根据你的答案重写了我的代码.现在看来是这样的:
IoProvider.get().makeRequest(url,
new ResponseReceivedHandler<Object>() {
public void onResponseReceived(ResponseReceivedEvent<Object> event) {
final Response<Object> response = event.getResponse();
if (response.getStatusCode() == HTTP_OK) {
// not working
callback.onSuccess("data:image/jpeg;base64,"
+ Base64Utils.toBase64(response.getText().getBytes()));
// working image
// callback.onSuccess("data:unknown;base64,R0lGODlhDwAPAKECAAAAzMzM/////wAAACwAAAAADwAPAAACIISPeQHsrZ5ModrLlN48CXF8m2iQ3YmmKqVlRtW4MLwWACH+H09wdGltaXplZCBieSBVbGVhZCBTbWFydFNhdmVyIQAAOw==");
}
}
}, options); …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种使内嵌图像垂直对齐的方法,以便内嵌图像的垂直中心与文本的中心垂直对齐。目前,内嵌图像的底部边缘与文本底部齐平。结果,图像似乎比应有的要高得多。有谁知道是否有办法从 Google 应用程序脚本或任何开发计划中控制它?
该文档指定了如何添加内联附件,但是从html部分引用它的正确方法是什么?是否可以像在其他库中一样自动包含图像?
也许有人写了一些小片段并愿意分享?
当我通过outlook或gmail向gmail电子邮件地址发送电子邮件时,我可以添加直接显示在gmail web界面中的内嵌图像:
工作电子邮件的相关原始邮件标题和原始正文部分:
--089e0158b6909948880520cef593
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Image there?<div><img src=3D"cid:ii_if3zqhar0_15014363be0a=
41b2" width=3D"10" height=3D"3"><br>=E2=80=8BHope so!<br></div></div>
--089e0158b6909948880520cef593--
--089e0158b69099488c0520cef594
Content-Type: image/png; name="test.png"
Content-Disposition: inline; filename="test.png"
Content-Transfer-Encoding: base64
Content-ID: <ii_if3zqhar0_15014363be0a41b2>
X-Attachment-Id: ii_if3zqhar0_15014363be0a41b2
iVBORw0KGgoAAAANSUhEUgAAAAoAAAADCAIAAAAlXwkiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAADFJREFUeNpi+A8BDCf/wwDD/1VIbBABIudDmAchokwgag9QAiwHVcsM
Z/5fCdYJEGAAuthJ+AVi5KgAAAAASUVORK5CYII=
--089e0158b69099488c0520cef594--
Run Code Online (Sandbox Code Playgroud)
完整的原始电子邮件:工作原始电子邮件.
但是,当我通过它发送这样的电子邮件时System.Net.Mail
,.NET
它不能在gmail web界面中工作,而是任何其他电子邮件客户端(outlook,iphone等):
非工作电子邮件的相关原始邮件头和原始部分:
----boundary_3_6a0761ee-57e2-4bdd-b1f1-7302b3c8a7a1
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Image there?<br /><img src=3D"cid:test.png@71236720.91827344" /><=
br />Hope so!
----boundary_3_6a0761ee-57e2-4bdd-b1f1-7302b3c8a7a1--
----boundary_5_979e00c0-3fb9-46a0-b25c-1cee82cc15eb
Content-Type: image/png; name=test.png
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename=test.png
Content-ID: <test.png@71236720.91827344>
iVBORw0KGgoAAAANSUhEUgAAAAoAAAADCAIAAAAlXwkiAAAAGXRFWHRTb2Z0d2FyZQBB
ZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpi+A8BDCf/wwDD/1VIbBABIudDmAch
okwgag9QAiwHVcsMZ/5fCdYJEGAAuthJ+AVi5KgAAAAASUVORK5CYII=
----boundary_5_979e00c0-3fb9-46a0-b25c-1cee82cc15eb--
Run Code Online (Sandbox Code Playgroud)
完整的非工作原始电子邮件:非工作原始电子邮件.
这是我发送内联图片的代码:
SmtpClient …
Run Code Online (Sandbox Code Playgroud) 对不起,如果我错过了一篇好文章,但我找不到一个很好的例子,说明如何使用ruby和邮件gem使用内联图像(我没有使用RoR)我能找到的最好的例子就在这里,但是我不明白.cid
方法的来源.
这里是上述帖子的摘录,其中使用了该.cid
方法.
html_part do
content_type 'text/html; charset=UTF-8'
body "<img width=597 height=162 id='Banner0' src='cid:#{pic.cid}'>"
end
Run Code Online (Sandbox Code Playgroud)
我有邮件gem工作,它可以发送图像作为附件,但我需要它们显示在电子邮件内,而无需打开附件.
我想在邮件正文中附加内嵌图像,为此我使用以下方法一切都很好,但电子邮件中附加了带有“noname”的附件,我不想在电子邮件中添加任何附件我只想在电子邮件中显示图像body ,以下是我的代码和邮件的快照
public void forgotPasswordMail(String email,String token)
{
String to = email;
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
MimeMessage message = new MimeMessage(session);
message.setSubject("HTML mail with images");
message.setFrom(new InternetAddress("me@sender.com"));
message.addRecipient(Message.RecipientType.TO,
new InternetAddress("you@receiver.com"));
// Mail Body
MimeMultipart multipart = new MimeMultipart("related");
BodyPart textPart = new MimeBodyPart();
String htmlText ="<img src=\"cid:image\"> " +
"<html><head><style>h1 {background-color: #FFF100;padding: …
Run Code Online (Sandbox Code Playgroud) inline-images ×10
email ×4
java ×4
gmail ×2
html ×2
.net ×1
android ×1
base64 ×1
c# ×1
gwt ×1
image ×1
jakarta-mail ×1
javascript ×1
php ×1
ruby ×1