google-apps-script - 获取电子邮件附件并保存到 google app 脚本中的 oracle 表中

标签 google-apps-script

我正在尝试使用谷歌应用程序脚本来检索电子邮件附件, 下面是我的代码,用于检查电子邮件中是否有任何附件

function testMail() {
var threads = GmailApp.getInboxThreads();
for (var i = 0; i < 10; i++) {
  var mess=threads[i].getMessages()[0];
  if (mess.getAttachments().length>0)
  {
    //var filename=mess.getAttachments()[0].
    Logger.log(mess.getSubject());
    Logger.log(mess.getAttachments()[0].getName());
    var conn = Jdbc.getConnection("jdbc:oracle:thin:@xxx.xxx.xxx.xxx/xxx.xxx.xxx", "xxx","xxxxxxx");
    conn.setAutoCommit(false);
    var stmt = conn.prepareStatement("insert into blob_table (filnname,blob_field) values (?,?)");
    stmt.setString(1, mess.getAttachments()[0].getName());

    stmt.setBlob(2, mess.getAttachments()[0]);
    var res = stmt.execute();
    conn.commit();
    conn.close();    

    break;
  }  
}
}

但是运行脚本时提示“找不到方法setBlob提示”,如果我只插入字段文件名就可以将数据保存到表blob_table中,请问有什么特殊的方法可以插入blob吗?

谢谢

最佳答案

如果您查看自动完成或文档,您会发现 JDBC 与 Apps 脚本的其余部分不同,它有自己的 JdbcBlob 概念,这与 Blob 不同。 (每个 JdbcBlob 都是一个 Blob,但反之则不然。)您可以像这样将常规 Blob 转换为 JDBC Blob:

conn.createBlob().setBytes(0, myOriginalBlob)

在这种情况下,myOriginalBlob 是您从 mess.getAttachments()[0]) 获得的内容

关于google-apps-script - 获取电子邮件附件并保存到 google app 脚本中的 oracle 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12768011/

相关文章:

google-apps-script - 无法从 Google Apps 脚本连接到 Google Latitude API

javascript - 如何在 Google Script 中传递所有数组

javascript - 清理比较

javascript - 在 Google Sheet 脚本中调用服务器端函数后关闭 HTML 页面

google-apps-script - 新创建的 Google Task 省略了提供的 "TaskLink"属性

javascript - Google Sheet 脚本编辑器 - 报告格式的多个 Sumif

javascript - 使用Google脚本数组中的搜索功能

javascript - 无法将 InputBox 字符串值从 HTML 传递到 Google Apps 脚本

google-apps-script - 使用 Google Apps 脚本 HTMLService 进行双重 HTML 编码

javascript - 从网页运行 Google App 脚本