Server掛點無人知?重要E-Mail用免費的Google簡訊通知你

摘要:Server掛點無人知?重要Mail用免費Google簡訊通知你

之前安迪兒設定 重要待辦事項用google行事曆發簡訊

剛好看到一篇文章,是間接使用Gmail對手機發簡訊

Use Google Docs to Get Free SMS and Email Alerts When your Website is Down

 

安迪兒覺的很有趣,就查一下Google Docs的函式
也寫一個來玩一下

 

關於mail發簡訊的例子用在那呢?

最直覺就是server掛點了 or 有重要的mail想用簡訊來提醒

以安迪兒來說,前公司的server有時會掛點
雖然有同事寫監控程式,會發mail通知

(幫他聲明一下,該同事很帥氣,

 住天母是金城武鄰居,單身要的話留言報名~XD)

 

但前經理曾對他靠杯過「mail太多了,之後要加上手機簡訊通知!! 」~XD
以這個例子來說,其實可以利用上述的方式來達到發簡訊的功能

 

Gmail發簡訊的原理是?


因為gmail沒有這個功能
但google行事曆有
所以用一個中間的google doc文件裡的程式定時去執行這件事

 

程式撰寫的邏輯大約是先用程式去搜要的gmail
再建立&搬移至google calendar上
再利用calendar的功能發簡訊
最後再做一些不重覆寄等等收尾的處理

 

關於試算表


一直以來安迪兒都覺的微軟excel超威的
以前助理們用到的企業內和專案的excel真是出神入化
裡面滿滿的巨集程式樞紐分析


程式寫不出來時,還可以去找他們商量
也許他們輕易的弄一下馬上就生的出結果
還可以用程式產生程式,整個讓安迪兒好生佩服

 

但看了一下google doc裡面的excel(試算表)
它...更強大!


除了基本的巨集之外,還可以使用一些google的服務
像是這次用的google mail和google calendar
都可以在上面寫程式做控制=O=

這麼強大的google試算表 當然要好好的玩一下^^

 

以下就記錄安迪兒整個執行的過程

 

1.先確定或打開google行事曆的簡訊設定


 

可以參考安迪兒上一篇
怕忘記重要的待辦事項?用免費的google簡訊來通知你...詳

 

2.至gmail裡面
Gmail - Google

勾一些想要傳簡訊的mail,點[選篩選這類的郵件]
套用標籤那新增一個叫Alert的標籤
(安迪兒的程式預設是Alert,可以自行修改)

 

 

3.再來登入google文件
Google Docs - create and edit documents online, for free.

 

建立一個新的試算表
點選[工具]-[指令碼編輯器]

 

新增一個google apps script的[網路應用程式]

 

再來這邊就開始寫想要程式碼
這邊附上安迪兒寫好的alertMail給大家參考
可以直接貼上使用



function onOpen(){ 

  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  
  var allEntries = [ {name: "Authorize", functionName: "authorize"},
                     {name: "Stop Alerts", functionName: "stopalert"}
                   ];
  
  sheet.addMenu("All Alerts", allEntries);
}

function authorize(){}

function stopalert(){

  var allTriggers = ScriptApp.getScriptTriggers();

  for(var i=0; i < allTriggers.length; i++) 
    ScriptApp.deleteTrigger(allTriggers[i]);
  
  Browser.msgBox("ok", "All messages stop!",Browser.Buttons.OK);  
}

function sendalert(){ 

  try {

    var alabel = GmailApp.getUserLabelByName('Alert');
    var athreads = alabel.getThreads();
    var now = new Date().getTime();
    var cale=getCalendar();
    
    for(i in athreads){
      cale.createEvent(athreads[i].getFirstMessageSubject()+": "+athreads[i].getMessages()[0].getFrom(),new Date(now+60000),new Date(now+60000)).removeAllReminders().addSmsReminder(0);
    }
    
    alabel.removeFromThreads(athreads);
  }
  
  catch(err){

    Logger.log("error :"+ err.toString());

  }
}

function getCalendar(){

  try{
    var cale=CalendarApp.getOwnedCalendarsByName("Alert")[0];
    
    if (!cale){
      cale=CalendarApp.createCalendar("Alert");
      return cale;
    }
    
    else{
      return cale;
    }
  }

  catch(e){
    Logger.log("error :"+ e.toString());

  }
}

 

 

寫完程式後存檔,此時要再設定這隻程式那時要執行

  • 點選資源-您所有的觸發程序
    google會要你認證這隻程式權限,自已寫的不用怕就按下吧

 

 

 

 

 

 

 

 

 

 

 

 

  • 設定觸發程序,安迪兒這邊設定2個
    第一個是文件打開時的動作
    第二個是每5分鐘去檢查mail&寄簡訊一次

 

完成後就可以存檔關掉這個試算表嘍

 

 

再來就是測試了
最快的方式就是直接勾1封mail加上標簽
看5分鐘後會不會收到簡訊


 

以下是安迪兒手機收到的結果

 

要玩的話記得一次別設定太多mail
安迪兒一開始設定每分鐘送簡訊,符合規則有3~40多封mail
突然間安迪兒的手機狂叫簡訊一直送

然後...當天google就不再寄簡訊過來了
(應該是同時間寄太多,被google阻擋了)

到了第二天又可以正常收簡訊
以上案例純供大家參考~XD

就這樣嘍,收工了收工了^^

 

==以上文章同步發表至安迪兒另一個github備份站==