Skip to content
2月 16 / rakkyoo

ターミナルからリマインダー.appにタスクを追加(gmailとiftttを使って)

ターミナルからリマインダー.appに簡単にタスクが追加できたらいいのにと思って挑戦してみました。

objective-cを使った方法ではとっても簡単にできるみたいですね。
ターミナルから OSX のリマインダーに項目追加するコマンド – それマグで!

objective-cとかよくわからないので、iFTTTを使えば何かできないかなって思ってやってみました。
iFTTT

1.iFTTTでgmail経由でリマインダー.appに追加できるように設定

iFTTTのレシピは以下のを使いました。

iFTTT / Emails you label “To-do” get added to an iOS Reminders list by maxmeyers

これを使って、gmailのラベルが「Todo」の時に「リマインダーに登録」とレシピを作る(このレシピそのままですが)だけです。

2.gmailで「Todo」のラベルがつくようにフィルター設定

ラベルが「Todo」とつくように設定すればいいだけなので、送信メールアドレスでも、件名でも何でもいいのですが、私は件名でフィルターをしました。

“件名が「todo」の時はラベルを「Todo」にする”っと。

gmailの設定にて、
受信トレイ rakkyoo113 gmail com Gmail 2

「フィルタ」を開いて、
設定 rakkyoo113 gmail com Gmail

こんな感じに設定しました。
設定 rakkyoo113 gmail com Gmail

3.ターミナルからgmailにメールを送信スクリプトを作る

私の場合は、gmailからgmailにメールを送信するようにしたので、以下のようにしました。

まず、以下のモジュールをインストールしておきます

1
2
3
4
5
6
Email::MIME
Email::Send
Net::SMTP
Net::SMTP::SSL
MIME::Base64
Authen::SASL

あとは、ソースを作るだけ。
パスの通っているディレクトリで、「addtodo.pl」を作ります。

1
2
$ cd ~/bin
$ touch addtodo.pl

「addtodo.pl」の中は以下のような感じです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#! /opt/local/bin/perl -w
use strict;
use warnings;
use utf8;
use Encode;
use Email::MIME;
use Email::MIME::Creator;
use Email::Send;
 
unless ( defined $ARGV[0] ) {
    print encode( 'utf-8', "タスクを追加してください。\n" );
    print encode( 'utf-8', "     ex) addtodo.pl タスクの内容\n\n" );
}
else {
    for my $body_txt (@ARGV) {
        $body_txt = decode( 'utf-8', $body_txt );
        print "*******************\n";
        print "Send Mail\n";
        print "Subject : todo\n";
        print encode( 'utf-8', "body    : $body_txt\n\n" );
        my $mailer = Email::Send->new(
            {
                mailer      => 'SMTP',
                mailer_args => [
                    Host     => 'smtp.gmail.com',
                    Port     => 465,
                    username => '**********@gmail.com',
                    password => 'gmailのパスワード',
                    ssl      => 1,
 
                ],
            }
        );
 
        my $mail = Email::MIME->create(
            header => [
                To   => '**********@gmail.com',
                From => encode(
                    'MIME-Header-ISO_2022_JP',
                    'add tasks <**********@gmail.com>'
                ),
				# subjectを「todo」に指定する。
                Subject => encode( 'MIME-Header-ISO_2022_JP', 'todo' ),
            ],
            attributes => {
                content_type => 'text/plain',
                charset      => 'iso-2022-jp',
                encoding     => '7bit',
            },
            body_str => $body_txt,
        );
        $mailer->send($mail);
    }
}

あとは、実行権限を与えて、

1
$ chmod +x addtodo.pl

終了です。

これで、

1
$ addtodo.pl 追加するタスク

っとすると、件名が「todo」で、本文が「追加するタスク」というメールがgmailにgmailから送れます。

ちなみに、

1
$ addtodo.pl 追加するタスク1 追加するタスク2 追加するタスク3

と連続でも追加できます。

これで、15分くらい待つとリマインダー.appにiFTTT経由で登録されます。
perlスクリプトからgmailにメール
      ↓
gmailのフィルタでラベル「Todo」がつく
      ↓
iFTTTがラベル「Todo」がついているメールをリマインダー.appに登録

っという流れです。

意外と快適に。

[`twib` not found]

Leave a comment

CAPTCHA


This blog is kept spam free by WP-SpamFree.