Google App脚本 - 按当前时间发送电子邮件

时间:2017-10-15 18:41:34

标签: google-apps-script

我需要在AppScripts中创建一个函数,该函数使用当前时间向我的电子邮件发送电子邮件。后来,我必须创建一个触发器,强制该函数每小时运行一次。我知道这对你们大多数人来说都很容易,但我从编码开始,我坚持这个练习。

这就是我写的:

function sendemail(){

function getDate() {
  var d = new Date();
  return (d.getMonth()+1) + "/" + d.getDate() + "/" + d.getFullYear();
}

function getTime() {
  var d = new Date(),
      offset = -d.getTimezoneOffset()/60,
      h = d.getUTCHours() + offset,
      m = d.getMinutes(),
      s = d.getSeconds();
  return h + ":" + m + ":" + s;
}

function getDateAndTime() {
   return getDate() + " " + getTime();

  Gmail.sendEmail({
     to: "luisjavier.diaziglesias@gmail.com",
     subject: "Hora actual",
     htmlBody: "La hora actual es +dateofDay <br/> Regards, Your robot",
   });
}

}

但它不起作用。我有点沮丧,并且一直出现同样的错误:“找不到脚本功能:doGet”。

任何人都可以看一下并帮助我吗?

提前致谢,非常感谢。

祝你好运, 路易斯

1 个答案:

答案 0 :(得分:1)

网络应用需要doGet(e)doPost(e)功能才能通过网址(doGet())或发布数据(doPost())接受来自网页的输入。每个函数中的参数e是&#39; event object&#39;将网址/帖子数据传入的位置。因此,您需要拨打电子邮件发送和发送电子邮件。来自doGet()的日期生成函数。

这是逻辑的高级视图:

function doGet(e){
  var d = new Date();
  var date = getGate(d); // your getDate() function
  var time = getTime(d); // your getTime() function
  var datetime = date + " " + time;
  sendEmail(datetime); // a new function to send an email
}

也就是说,您可以通过Utilities.formatDate(new Date())documentation here)获得您的日期和时间,从而更有效地获取时间戳。时间在正确的时区&amp;使用正确的区域设置格式。

通过发送电子邮件,您可以使用基本的Mail service函数MailApp.sendEmail(recipient, subject, body),该函数会向recipient发送一封电子邮件,其中subject传入&amp; body中指定的消息。在这种情况下,这似乎就是您所需要的。如果您需要与邮箱进行交互,那么您应该使用Gmail service,但如果您只需要从运行我们应用程序的帐户发送电子邮件,请坚持使用邮件服务。