Google apps script 有没有办法将Gmail附件保存为MP4?

Google apps script 有没有办法将Gmail附件保存为MP4?,google-apps-script,Google Apps Script,我试图将Gmail附件保存为MP4文件,但出现以下错误: 例外:不支持从应用程序/x-msdownload转换为视频/mp4。(第138行,文件“代码”) 代码如下: function saveAttachment(attachment, path) { var parts = path.split('/'); var file = parts.pop(); var path = parts.join('/'); var folder = getOrMakeFolder(p

我试图将Gmail附件保存为MP4文件,但出现以下错误:

例外:不支持从应用程序/x-msdownload转换为视频/mp4。(第138行,文件“代码”)

代码如下:

function saveAttachment(attachment, path) {
  var parts = path.split('/');
  var file = parts.pop();
  var path = parts.join('/');
  
  var folder = getOrMakeFolder(path);
  var check = folder.getFilesByName(file);
  if(check.hasNext()) {
    Logger.log(path + '/' + file + ' already exists. File not overwritten.');
    return;
  }
  var blobFile = attachment.copyBlob();
  var videoFile = blobFile.getAs('video/mp4')
  folder.createFile(VideoFile).setName(file);
  Logger.log(path + '/' + file + ' saved.');
  Logger.log(attachment);
}

我在这个主题中找到了一个有效的解决方案:

解决办法是:

function saveAttachment(attachment, path) {
  var parts = path.split('/');
  var file = parts.pop();
  var path = parts.join('/');
  
  var folder = getOrMakeFolder(path);
  var check = folder.getFilesByName(file);
  if(check.hasNext()) {
    Logger.log(path + '/' + file + ' already exists. File not overwritten.');
    return;
  }
  var videoFile = attachment.setContentType("video/mp4");
  folder.createFile(videoFile).setName(file);
  Logger.log(path + '/' + file + ' saved.');
  Logger.log(attachment);
}

我在这个主题中找到了一个有效的解决方案:

解决办法是:

function saveAttachment(attachment, path) {
  var parts = path.split('/');
  var file = parts.pop();
  var path = parts.join('/');
  
  var folder = getOrMakeFolder(path);
  var check = folder.getFilesByName(file);
  if(check.hasNext()) {
    Logger.log(path + '/' + file + ' already exists. File not overwritten.');
    return;
  }
  var videoFile = attachment.setContentType("video/mp4");
  folder.createFile(videoFile).setName(file);
  Logger.log(path + '/' + file + ' saved.');
  Logger.log(attachment);
}

在多个附件之间循环时,您需要确保只检索正确数据类型的附件,您可以使用
if
语句:

函数保存附件(附件/*,路径*/){
var parts=path.split('/');
var file=parts.pop();
var path=parts.join('/');
var folder=getOrMakeFolder(路径);
var check=folder.getFilesByName(文件);
if(检查.hasNext()){
Logger.log(路径+'/'+文件+'已存在。文件未被覆盖');
返回;
}
//检查附件的类型是否正确
如果(附件.getContentType()=='video/mp4'){
var blobFile=attachment.copyBlob();
var videoFile=blobFile.getAs('video/mp4')
DriveApp.createFile(videoFile).setName(“文件”);
folder.createFile(VideoFile).setName(file);
Logger.log(路径+'/'+文件+'已保存');
Logger.log(附件);
}
}

在多个附件之间循环时,您需要确保只检索正确数据类型的附件,如果语句:

函数保存附件(附件/*,路径*/){
var parts=path.split('/');
var file=parts.pop();
var path=parts.join('/');
var folder=getOrMakeFolder(路径);
var check=folder.getFilesByName(文件);
if(检查.hasNext()){
Logger.log(路径+'/'+文件+'已存在。文件未被覆盖');
返回;
}
//检查附件的类型是否正确
如果(附件.getContentType()=='video/mp4'){
var blobFile=attachment.copyBlob();
var videoFile=blobFile.getAs('video/mp4')
DriveApp.createFile(videoFile).setName(“文件”);
folder.createFile(VideoFile).setName(file);
Logger.log(路径+'/'+文件+'已保存');
Logger.log(附件);
}
}

您是否将此代码应用于收件箱中的特定附件或所有附件?我循环使用多个附件,但这部分代码是用于将文件保存到GDrive中的代码。您是否将此代码应用于收件箱中的特定附件或所有附件?我循环使用多个附件,但这部分代码是无效的用于在GDrive中保存文件的文件。谢谢,我将尝试先检查是否为MP4文件,然后保存它。谢谢,我将尝试先检查是否为MP4文件,然后保存它。