ラベル GmailAppクラス の投稿を表示しています。 すべての投稿を表示
ラベル GmailAppクラス の投稿を表示しています。 すべての投稿を表示

2014年8月11日月曜日

Google Apps Script | メールにファイルを添付して送付する

メールだけを送るときのGoogle Apps Scriptの書き方は以前の投稿に書きました。

今回はさらにメールにファイルを添付して送信する場合の書き方です。

---以下スクリプト---

var mailTo = "___@gmail.com"; //メール送信先アドレス
var mailSubject = "Test"; // メールのタイトルvar mailBody = "これはテストです。"; // メール本文

var file1 = {

                fileName: "chart1", 
                mimeType: blob1.getContentType(),
                content: blob1.getBytes()

               };
var file2 = {
                fileName: "chart2", 
                mimeType: blob2.getContentType(),
                content: blob2.getBytes()

               };

GmailApp.sendEmail(mailTo,subject,mailBody,{attachments: [file1,file2]});

---以上スクリプト---

と、このような形式になるのですが、これでは不完全です。blob1やblob2って何?となります。これについては別途。。。

Google Apps Script | メールを送る

GmailApp.sendEmail(mailTo,mailSubject,mailBody);

ここで、mailTo, mailSubject, mailBodyは変数です。
あらかじめ

var mailTo = "___@gmail.com"; // メール送信先アドレス
var mailSubject = "Test"; // メールのタイトル
var mailBody = "これはテストです。"; // メール本文

などと指定しておきます。

Google Apps Scriptリファレンス


2014年6月19日木曜日

Google Apps Script : Gmail本文をそのままをスプレッドシートに入力する方法

Google Apps Scriptには、Gmail本文を取得するメソッドとしてGmailAppクラスにgetBody()メソッドがありますが、これを使うとメール本文内の改行を示すHTMLタグである<br />までスプレッドシートに入力されてしまいます。

そこで、<br />タグなしの、本文の見た目そのままを入力したいときはgetPlainBody()メソッドを使います。

---以下スクリプト---

作成中

---以上スクリプト--

参考にさせてもらったサイト

2014年6月18日水曜日

Google Apps Script : getMessages()メソッドで取得できる受信トレイスレッドの順番

GmailAppクラスのgetMessages()メソッドを使うと、自分のGmail受信トレイのスレッドオブジェクトを取得することができますが、どのような順番で取得できるのかがわからなかったのでテストしてみました。

テスト用のスクリプトは

---以下スクリプト---

function getMessageFromGmail() {

    var threads = GmailApp.getInboxThreads();
   
    for(var n=1;n<=5;n++) {
        var thread = threads[n];
        var msgs = thread.getMessages();
              
        for(m in msgs) {
            var msg = msgs[m];
            var date = msg.getDate();
                  
            sheet.getRange(n,1).setValue(date);
        }
    }
}

---以上スクリプト---

Gmail受信トレイの全スレッド(実際には500スレッド)を取得し、それについてforループを5回回してスレッドを取得しています。
さらに取得した5スレッドについて内側のforループで受信日時を取得し、スプレッドシートのA列に順番に受信日時を書き込んでいます。

結果は











となりました。受信日時が新しい順に上から並びましたが、受信トレイには未読のものが残っているため、受信トレイの見た目とは異なることに注意が必要かと思います。

SyntaxHighlighter