如何使 gmailapp 中的 getAttachments() 从签名中排除图像?
How to make getAttachments() in gmailapp to exclude images from signature?
我正在尝试阅读 Gmail 附件并将其推送到 Google 云端硬盘。除了一个小问题/behavior,它工作得很好。
每当我调用 getAttachments() 方法时,它都会包含驱动器文件夹中不相关的内联签名图像。有什么方法可以排除签名图像(或完全内联图像),以便我只能推送附件吗?
下面是我的代码,如果你想查看的话。
var threads = myLabel.getThreads(0,500);
for (var threadIdx=0; threadIdx<threads.length; threadIdx++) {
var thread = threads[threadIdx];
var messages = thread.getMessages();
for (var msgIdx=0; msgIdx<messages.length; msgIdx++) {
var message = messages[msgIdx];
var attachments = message.getAttachments();
Logger.log(attachments.length);
}
}
所以我总是得到 attachments.length 比实际附件数量多一个,当有签名图像时。
有人可以帮忙吗?
抱歉回复晚了,但我遇到了同样的问题并找到了解决方法,
您的 message.getBody() 方法将包含整个邮件正文。这还将包含签名图像名称。所以我们可以做的是检查附件中的签名名称,如果我的正文包含此签名名称,那么我应该发出该附件。这是代码片段,
var textMessage = message.getBody();
if (attachments.length > 0) {
for (var z=0; z<attachments.length; z++) {
var attachment = attachments[z];
if(textMessage.indexOf(attachment.getName()) === -1)
{
folder.createFile(attachment);
}
}
}
我也检查了内联附件,此代码仅将它们视为附件。
使用
var attachments = message.getAttachments({
includeInlineImages : false
});
而不是
var attachments = message.getAttachments();
它将排除内联图像。电子邮件消息中的签名也是一个内联图像,在您的案例中被提取为附件。
我正在尝试阅读 Gmail 附件并将其推送到 Google 云端硬盘。除了一个小问题/behavior,它工作得很好。
每当我调用 getAttachments() 方法时,它都会包含驱动器文件夹中不相关的内联签名图像。有什么方法可以排除签名图像(或完全内联图像),以便我只能推送附件吗?
下面是我的代码,如果你想查看的话。
var threads = myLabel.getThreads(0,500);
for (var threadIdx=0; threadIdx<threads.length; threadIdx++) {
var thread = threads[threadIdx];
var messages = thread.getMessages();
for (var msgIdx=0; msgIdx<messages.length; msgIdx++) {
var message = messages[msgIdx];
var attachments = message.getAttachments();
Logger.log(attachments.length);
}
}
所以我总是得到 attachments.length 比实际附件数量多一个,当有签名图像时。
有人可以帮忙吗?
抱歉回复晚了,但我遇到了同样的问题并找到了解决方法,
您的 message.getBody() 方法将包含整个邮件正文。这还将包含签名图像名称。所以我们可以做的是检查附件中的签名名称,如果我的正文包含此签名名称,那么我应该发出该附件。这是代码片段,
var textMessage = message.getBody();
if (attachments.length > 0) {
for (var z=0; z<attachments.length; z++) {
var attachment = attachments[z];
if(textMessage.indexOf(attachment.getName()) === -1)
{
folder.createFile(attachment);
}
}
}
我也检查了内联附件,此代码仅将它们视为附件。
使用
var attachments = message.getAttachments({
includeInlineImages : false
});
而不是
var attachments = message.getAttachments();
它将排除内联图像。电子邮件消息中的签名也是一个内联图像,在您的案例中被提取为附件。