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

2019/10/21

【GAS】スプレッドシートからGmailを送りたい



こんにちは!仕事時間の約7割はスプレッドシートを操作しているtknria(@tknria0304)です!

以前に「Gmailに届いたメール内容をスプレッドシートに反映したい」という記事をご紹介しました。
今回はその逆、スプレッドシートからGmailを送っちゃおうという内容です。

この作業を簡単にしようと思うと、
 ・スプレッドシートから必要情報を読み込む
 ・Gmailでメールを作成し送信する
というステップを踏めば実現することができます。

では早速、その具体的な方法をご紹介させていただきます。


スプレッドシートからGmailを送ろう


スプレッドシートからGmailを送る方法は簡単です。

宛先・件名・本文を決めて、「MailApp.sendEmail」で送る。

実はたったこれだけなんです。
これを実現するのは以下のコードです。

function SendGmail() {
  var recipient = "xxxx.xxxx@xxx.co.jp"   // 宛先
  var subject = "テストメールの件名"   // 件名
  var body = "tknriaです。\nテストです。"   // 本文
  MailApp.sendEmail(recipient, subject, body);
}

このコードでは、宛先・件名・本文を直接設定しています。

これを、例えばスプレッドシートの「テスト」シートの「D2」セルに入力された宛先に送る、としたい場合は、

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('ここに取得したいシート名');
var recipient = sheet.getRange(2,4).getValue();

とすれば良いです。

ぜひ、いろいろいじってみながら感覚をつかんでください。


億劫なあとがき


いかがでしょうか。
これとトリガー設定を組み合わせることで、定型のメールを望んだタイミングで定期的に送ることが可能です。

トリガー設定については後日、ご紹介できればと思います。



関連記事

・これからGASを始めたい!という方にはこちらの記事がオススメ
 → 億劫な細道「GAS まずGASを使ってみたい」

・VBAやGASについてもっとざっくり知りたい方はこちらの記事がオススメ
 → 億劫な細道「VBAやGASを用いた業務効率化のススメ」

2018/11/22

【GAS】Gmailに届いたメール内容をスプレッドシートに反映したい



こんにちは!Gmailもスプレッドシートも生活必需品になってしているtknria(@tknria0304)です!

立場上、部下や後輩から定型フォーマットの報告メールを送ってもらうのですが、これをひとつずつ開いて内容を確認するのがとても手間です。

この作業を簡単にしようと思うと、
 ・Gmailを検索する
 ・メールの本文を解析する
 ・必要な部分だけを抽出する
 ・スプレッドシートに書き込む
というステップを踏めば実現できます。

「Gmailを検索」ってスプレッドシート上からできるの??

そんなことを思っていましたが、いろいろ試してみるとできちゃいました。

ということで、今回はGmailからメール内容を引用してスプレッドシートに反映する方法をご紹介します。



Gmailとスプレッドシートを連携しよう


まずはスプレットシート上に、ボタンを用意し、スクリプトエディタを開いてください。
(わからない方は以前ご紹介した「まずGASを使ってみたい」という記事を参考にしてみてください。)

そして以下のコードをそのままコピペしてください。

function checkHRS() {

  var out_START = 5;  // 出力のスタート行を指定する

  // 報告メールに付けているラベル名を設定。ここでは「報連相」というラベルをメールに付けているとします。
  var Label = "報連相";

  // Gmail上で検索し、今回の報連相を取得
    var this_threads = GmailApp.search('label:' + Label);  // 日

  // このシート上に報連相の内容を出力
  for(var n in this_threads){
    var thd = this_threads[n];
    var msgs = thd.getMessages();
    var msg = msgs[msgs.length-1];
    var from = msg.getFrom();
    var date = msg.getDate();
    var title = msg.getSubject();
    var body = msg.getBody();
 
    sheet.getRange(out_START,1).setValue(date);
    sheet.getRange(out_START,2).setValue(from);
    sheet.getRange(out_START,3).setValue(title);
    sheet.getRange(out_START,4 + i).setValue(body);
    out_START++;
    Utilities.sleep(500);
  }
}

設定として、報告メールには「報連相」というラベルが付いているものとします。
このメールを、GmailApp.search()で検索して取得しています。

上記ではラベルだけで検索していますが、報告メールは毎日、毎週送ってもらうと思うので、日付も指定したくなります。
その場合は、

    var this_threads = GmailApp.search('label:' + Label + ' after:2018/11/21 before:2018/11/24');

というように、追加で条件を指定することができます。
(上記であれば、受信日が「2018年11月21日~24日」のメール、という条件を追加しています)

試しに、Gmailで「報連相」というラベル付きのメールをいくつか用意してテストしてみてください。
このコードをベースにすれば、いろんなことができるので、そちらも模索してみてください。


億劫なあとがき


いかがでしょうか。
余談ですが、コード内にある「HRS」というのは、以前某企業に勤めていたときに使われていた用語で、「報連相(HouRenSou)」を指します。
そのときの名残で未だに使ってしまいます笑



関連記事

・これからGASを始めたい!という方にはこちらの記事がオススメ
 → 億劫な細道「GAS まずGASを使ってみたい」

・VBAやGASについてもっとざっくり知りたい方はこちらの記事がオススメ
 → 億劫な細道「VBAやGASを用いた業務効率化のススメ」

2014/03/28

【Gmail】複数ある添付ファイルを一括ダウンロードしたい



こんにちは!日々届くGmailで大量の添付ファイルを受信しているtknriaです!

Gmailで添付ファイル付のメールを受信したときに、それをローカルにダウンロードしようと思うと、


こんな感じでドラッグ&ドロップしたらできますよね。


でも、この方法だと一つずつしかファイルをダウンロードするしかないので、複数の添付ファイルがある場合は手間がかかります。

しかし、これら複数の添付ファイルを一括ダウンロードできる機能が、Gmailには備わっていたのです・・・!



■ Gmailで複数の添付ファイルをまとめてダウンロードしよう!


実は、その方法、簡単なんです。


「添付ファイル」と書かれた右側に「↓」のようなアイコンがあるのでこれをクリック
↓


Google Chromeだとダウンロードマネージャーが立ち上がるため、ここをクリック
↓


全ての添付ファイルが一つのzipファイルにまとめられてダウンロードされています!

まさに一括ダウンロードですね。



■ 億劫なあとがき


この方法では複数の添付ファイルを同時にダウンロードすることは可能です。

しかし、zipファイルとしてダウンロードされるので、毎回解凍する必要があるのが手間ですね。
なんとか、zipとせずそのままの形式で、複数ファイルを一括でダウンロードできる方法はないか。。

また、複数のメールにそれぞれ添付されたファイルを一括でダウンロードしたいという場合もありますよね。。

これらについては現在調査中ですので、見つかり次第お伝えできればと思います。



関連記事

・Gmailとスプレッドシートを連携したい!という方にはこちらの記事がオススメ♪
 → 億劫な細道「GAS Gmailに届いたメール内容をスプレッドシートに反映したい」

・より広範囲にわたって活躍するために効果的な読書法を知りたい!という方にはこちらの記事がオススメ♪
 → 億劫な細道「読書効率を上げたい」