こんにちは、JAGA(ja_gaimopotato)です。
IFTTTが好きで結構使っているのですが、Gmail関連のトリガーが全然動きません。
スターにした時をトリガーにEvernoteへポストしたり、Omnifocusへ飛ばしたりしたいのですが動かない。
これが不満だったので、IFTTTへ問い合わせたのですが返事も今のところなし。
ひとまず代替案としてGoogle Apps Script
ですので、とりあえずGoogle Apps Scriptで解決することにしました。
Google Apps Script — Google Developers
しかし、Google Apps Scriptについてはほとんど何もわかっていません。
Gmailのリファレンスだけ、ざっと見て今30分ほど触ってとりあえず完成したので、記事にしている状況です。
Gmail Service – Google Apps Script — Google Developers
共有の方法すらわかっていないので、コピペしてください。
function main(){
_sendStarredMailTo("ここにOmnifocusのMailDropのアドレス","ここに送信済みアイテム用のラベル名");
}
function _sendStarredMailTo(mailAddress,labelName) {
var label = _getLabelWithName(labelName);
var starredMails = GmailApp.search("is:starred -label:" + label.getName());
for (var i = 0; i < starredMails.length; i++) {
var messages = starredMails[i].getMessages();
for (var k = 0; k < messages.length; k++) {
if (messages[k].isStarred()){
var mailSubject = messages[k].getSubject();
var mailBody = messages[k].getBody();
starredMails[i].addLabel(label);
MailApp.sendEmail({
to: mailAddress,
subject: mailSubject,
htmlBody: mailBody,
});
}
}
}
}
function _getLabelWithName(name){
var label = GmailApp.getUserLabelByName(name);
if (!label){
label = GmailApp.createLabel(name);
}
return label;
}
使い方は、main()をスクリプト画面から実行するだけです。
定期的に実行することも可能です。
トリガーという仕組みがあるようで、とりあえずタイマーをトリガーとして1分ごとに実行するようにしています。
上手く運用できると良いのですがいかがでしょう。
ラベルとメールアドレスの組み合わせを変更するとEvernoteへの投稿などにも応用できると思います。
あとでやってみます。