【发布时间】:2014-07-31 04:23:08
【问题描述】:
我获得了一封电子邮件的 id,并希望显示电子邮件内容 (html)。
var email = GmailApp.getMessageById(id);
如何显示电子邮件
a) 通过打开新的浏览器窗口(或选项卡式浏览器中的选项卡)
b) 通过打开 Gmail 和邮件
c) 通过在 Ui 小部件中显示它
关于 c) 我知道我可以使用
var body = email.getBody();
app.createHTML().setHTML(body);
但这会删除很多元素(如图片和链接)
Edit-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)我不太喜欢这个
EDIT-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(到网格或锚点)允许记录和其他事情。
(通常)不需要的一件事是更改背景图像。我尝试过(并且有效),但结果是在打开邮件之前我什至没有看到更改后的图像。
这种方法的缺点是你一直看到锚文本的下划线,并且只能点击锚所占据的区域
EDIT-2
我应该提到我正在使用UiApp.createApplication();,并且正在寻找一种在 UiApp 中显示电子邮件的可能性。
【问题讨论】:
-
您可能对this post 感兴趣,它提供了一种将html 内容转换为保留所有格式的Google Doc 的方法。无论如何,知道总是很好;-)
-
确实如此。缺少的重要事情之一是能够从谷歌文档(文档、脚本、电子表格、日历......)创建“标准”文件。尽管云存储将变得越来越流行,但人们希望(/需要)在本地拥有和存储数据并使用其他程序(和云)。从 google 电子表格到 xls、从 google docs 到 msword 等的转换非常重要,应该可以作为函数使用,例如 'var xlsFile = convert(GoogleSpreadSheetFile, nameExcelFile);'