首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确保附在汽车电子邮件上的PDF是最新的信息?

如何确保附在汽车电子邮件上的PDF是最新的信息?
EN

Stack Overflow用户
提问于 2019-08-20 02:38:42
回答 2查看 54关注 0票数 0

这就是我通过Google脚本创建的流程。

  1. 有人用google格式写他们的信息。
  2. 这些信息存储在电子表格中。
  3. 发票是在电子表格中创建的,其中包含收到的最新信息。
  4. 发票自动转换成PDF格式。
  5. 最新的发票附在自动发送电子邮件上。
  6. 一旦提交google表单,该人将收到一封附有发票的自动电子邮件。

问题是,当某人提交google表单时,他们会收到一张发票,但是他们收到的是来自之前信息的发票。然后再重复一遍。当有人提交时,发票内的信息来自于之前的那个人。

我是谷歌脚本的初学者,所以我不知道为什么会这样。

这是我用来发送自动电子邮件的代码。我把密码降到最低了。

代码语言:javascript
复制
function for_users2() {

 var title = "【お問い合わせありがとうございます】";

 var name = '名前'; 
 var mail = 'メールアドレス'; 
 var address = "";

 var sheet = SpreadsheetApp.getActiveSheet();
 var row = sheet.getLastRow();
 var column = sheet.getLastColumn();
 var range = sheet.getDataRange();
 var TIMESTAMP_LABEL = 'タイムスタンプ';

 for (var i = 1; i <= column; i++ ) {

 var item = range.getCell(1, i).getValue();


 var value = range.getCell(row, i).getValue();

 if ( item === TIMESTAMP_LABEL ) {
 item = 'お問い合わせ日時';
 }

 if ( item === 'お問い合わせ日時' ) {
 value = Utilities.formatDate(value, 'Asia/Tokyo',"YYYY'年'MM'月'dd'日'HH'時'mm'分'ss'秒'");
 }


 body += "■"+item+"\n";


 body += value + "\n\n";


 if ( item === name ) {
 body = value+" 様\n\n"+body;
 }


 if ( item === mail ) {
 address = value;
 }
 }

 body += body2;

var token = ScriptApp.getOAuthToken();
var pdf = UrlFetchApp.fetch("https://docs.google.com/spreadsheets/d/OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO/export?exportFormat=pdf&format=pdf&size=A4&portrait=true&fitw=true&sheetnames=false&printtitle=false&pagenumbers=false&gridlines=false&fzr=false&gid=00000000000", {headers: {'Authorization': 'Bearer ' +  token}}).getBlob().setName('請求書');



  GmailApp.sendEmail(
    address,
    title,
    body,
    {
      attachments: [pdf],
      name: 'Automatic Emailer Script'
    }
 );
  }


There is no error. It's just that the invoice attached is from one previous customer.
EN

回答 2

Stack Overflow用户

发布于 2019-08-20 09:33:53

感谢那些回答我问题的人。特别感谢Tanaike,他提出了一种解决办法,在那里我可以用它作为煤气的起动器。

正如我使用的Utilities.sleep(5000),每当有人提交谷歌表单,发票(PDF格式)被更新到最新的信息。由于我创建的程序并不是针对非常重的进程,这可能是它工作得非常好的原因。

票数 1
EN

Stack Overflow用户

发布于 2019-08-20 05:30:12

如果SpreasheetApp.flush()似乎不起作用,那么当然应该转到onFormSubmit - Installable触发器。

触发器-表单提交

通过这种方式,您可以处理表单中的确切值,并使用与现在使用的相同的函数。您可以使用以下方法从表单提交中获取值,而不是获取最后一行值。

代码语言:javascript
复制
var name = e.namedValues['Name'][0]; var email = e.namedValues['Email'][0]; 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57566035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档