我获得了电子邮件的ID,并希望显示电子邮件内容(html)。
var email = GmailApp.getMessageById(id);
如何显示电子邮件
a)打开一个新的浏览器窗口(或选项卡式浏览器中的选项卡)
b)通过打开Gmail和消息
c)通过在Ui小部件中显示它
关于c)我知道我可以使用
var body = email.getBody();
app.createHTML().setHTML(body);
但这会删除很多元素(如图片和链接)
修改-1
b) by opening Gmail and the message
的部分答案是在弹性表中使用锚点并单击它
var mailUrl = 'https://mail.google.com/mail/u/0/?tab=om#inbox/';
var urlAnchor = mailUrl + message.getId();
var btn = app.createAnchor(row, urlAnchor)
但这需要用户点击
即使可以使用由锚点覆盖的按钮图像(参见How can I launch a website from a button),我也不是很喜欢这个
修改-1A
肯定使用锚是最快的。
var urlImage = 'https://drive.google.com/uc?id=0BxjtiwHnjnkraTN3UmN6NDhrSDA'; // Empty button image
var anchor = app.createAnchor(txtAnchor, urlAnchor)
.addClickHandler(onClickHandler)
.setSize(width-2, height-2);
var grid = app.createGrid(1, 1).setWidget(0, 0, anchor)
.setSize(width, height).setStyleAttribute('textAlign', 'right')
.setStyleAttribute('backgroundImage', 'url(' + urlImage + ')');
添加clickHandler(到网格或锚点)允许记录和其他事情 一件事(通常)不需要将改变背景图像。我试过(并且它有效),但事实证明,在打开邮件之前我甚至没有看到更改过的图像。
这种方法的缺点是你不断看到anchortext的下划线,只能点击锚点占用的区域
修改-2
我应该提到我正在使用UiApp.createApplication();
并且正在寻找在UiApp中显示电子邮件的可能性。
答案 0 :(得分:0)
使用UiApp HTML小部件无法做到这一点。 HTML小部件仅允许有限数量的html标记(release note march 7, 2012)
以下是允许使用的HTML标记列表: B,BLOCKQUOTE,BODY,BR,CENTER,CAPTION,CITE,CODE,DIV,EM,H1,H2,H3,H4,H5,H6,HR ,I,LABEL,LEGEND,LI,OL,P,SPAN,STRONG,SUB,SUP,TABLE,TBODY,TD,THEAD,TITLE,TR,TT,UL
可能的解决方法是在另一个浏览器页面(使用html服务)中呈现该消息并链接到该页面。