_RJ 技術メモ

人生を豊かにする技術を提供する、筋肉

Amazonのコンビニ受け取りメールの受け取り番号をSlackで通知する

GoogleAppsScript gmail JavaScript Slack

概要

Slack投稿は外部ライブラリのSlackAppを使用 コンビニ受け取りを多く使用するかつ、Gmailを開くのが面倒だったから作成

ソースコード

未読のAmazonのコンビニ受け取りメールの受け取り番号をSlackで通知する。 そしてメールを既読にする。

function myFunction() {
  var strTerms = '店舗到着済:受取方法をご案内します is:unread';
 
  var myThreads = GmailApp.search(strTerms, 0, 30); 
  var myMessages = GmailApp.getMessagesForThreads(myThreads); 
 
  for(var i=0;i < myMessages.length;i++){
    var message = myMessages[i][0];
    Logger.log(message.getSubject());  
    //Logger.log(myMessages[i][0].getPlainBody().slice(0,1000)); 
    
    var text = message.getPlainBody().slice(0,1000);
    var start = text.indexOf('お問い合わせ番号:');
    
    var number = text.slice(start, start + 37);
    postSlack('amazon-delivery-mail', 'amazon-delivery', number);
    
    message.markRead();
  }
}


function postSlack(channelname, username, message){
  //Get channels
  var slackApp = SlackApp.create('xoxp-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
  var channels = slackApp.channelsList().channels;
  
  Logger.log(channels);
  
  //Channel check
  var channel = null;
  channels.forEach(function(v, i){
    if(v.name == channelname){
     channel = v; 
    }
  });

  //Post Message
  slackApp.postMessage(channel.id, message, {
    username : username
  }); 
}