首页 文章

Google App Script - 使用当前时间发送电子邮件

提问于
浏览
1

我需要在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 
Regards, Your robot", }); } }

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

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

在此先感谢,非常感谢 .

最好的问候,路易斯

1 回答

  • 1

    Web应用程序需要 doGet(e)doPost(e) 函数才能通过URL( doGet() )或发布数据( doPost() )接受来自网页的输入 . 每个函数中的参数 e 都是'event object ' where the url/post data are passed in. So, you'需要从 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)以正确的时区获取您的日期和时间并使用正确的区域设置格式,从而更有效地获取时间戳 .

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

相关问题