質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

2回答

1205閲覧

GASを利用し、添付ファイル付きのメールを一斉送信

H.W

総合スコア13

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2019/01/24 08:03

編集2019/01/24 08:04

前提・実現したいこと

スクリプト初心者です。
Google Driveのファイルを添付して、一斉送信を行いたく
コードを作成してみたのですが、
以下のエラーメッセージが発生しました。
■スプレッドシートからの社名・宛名・メールアドレス・本文等の差し込み
■Google Driveの指定ファイル添付して送付すること
お分かりの方、お力をお貸しいただけませんでしょうか。

発生している問題・エラーメッセージ

TypeError: オブジェクト Drive で関数 getstrfolderById が見つかりません。

該当のソースコード

function myFunction() { /* スプレッドシートのシートを取得と準備 */ var mySheet=SpreadsheetApp.getActiveSheet(); //シートを取得 var rowSheet=mySheet.getDataRange().getLastRow(); //シートの使用範囲のうち最終行を取得 /* ドキュメント「メール本文テスト」を取得する */ var docTest=DocumentApp.openById("1eMJg_2TyuY9Mtenw8YUpFC8hzULOTfaPjzgnsOn1LYc"); //ドキュメントをIDで取得 var strDoc=docTest.getBody().getText(); //ドキュメントの内容を取得 /* シートの全ての行について姓名を差し込みログに表示*/ for(var i=2;i<=rowSheet;i++){ var strEmail=mySheet.getRange(i,1).getValue(); //email var strSei=mySheet.getRange(i,2).getValue(); //姓 var strMei=mySheet.getRange(i,3).getValue(); //名 var strNo=mySheet.getRange(i,4).getValue(); //番号 var strBody=strDoc.replace(/{姓}/g,strSei).replace(/{名}/g,strMei).replace(/{番号}/g,strNo); /* メール表題、fromアドレス、差出人名を準備 */ var strSubject = strSei + strMei+"様 テスト:おしらせ"; //姓 名 様 メールタイトル var strFrom="aaa@bbbb.jp"; //From var strSender="TEST ○○社"; //差出人 //Google Driveからファイル名で、ファイルを取得する var strfolder = DriveApp.getstrfolderById('aaaaa'); //フォルダIDを入力 var strreport =folder.DriveApp.getfileByName('test.pdf').next(); //file単体になっている点に注意 /* メールを送信 */ GmailApp.sendEmail( strEmail, //toアドレス strSubject, //メールタイトル strBody, //本文 { attachments: strreport, from: strFrom, //fromアドレス name: strSender //差出人 } ); } }

試したこと

folderを指定せずにファイルを直接取得も試したのですが
定義されていません、というようなエラーが出てしまいました

また、添付ファイル無しでの送信はできました

補足情報(FW/ツールのバージョンなど)

参考にしたサイト
参考1:https://liapoc.com/bulk-transmission.html
参考2:https://tonari-it.com/gas-google-drive-file-folder-id/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

javascript

1//Google Driveからファイル名で、ファイルを取得する 2// var strfolder = DriveApp.getstrfolderById('aaaaa'); //フォルダIDを入力 3// 関数名が間違っている以前に、strfolderを使ってないから無意味 4// var strreport = /*folder. folderはどっから出てきた?無意味*/DriveApp.getfileByName('test.pdf').next(); //file単体になっている点に注意 5var strreport = DriveApp.getFilesByName('test.pdf').next().getBlob(); 6 7/* メールを送信 */ 8GmailApp.sendEmail( 9strEmail, //toアドレス 10strSubject, //メールタイトル 11strBody, //本文 12 13{ 14 attachments: [strreport], 15from: strFrom, //fromアドレス 16name: strSender //差出人 17} 18); 19

投稿2019/01/24 08:31

編集2019/01/24 08:35
papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

H.W

2019/01/24 08:40

ありがとうございました。送信できました。 folder指定は不要なのですね。勉強になりました
guest

0

getstrfolderByIdgetFolderById

先ずこれを直してみてください

投稿2019/01/24 08:16

takito

総合スコア3111

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

H.W

2019/01/24 08:27

早速ありがとうございます。 getFolderById で試したのですが、以下のエラーが出てしまいました 「ReferenceError: 「Folder」が定義されていません。」
papinianus

2019/01/24 08:36

ソースコードが正しければ、「folder」が定義されていません、となるはず。大文字小文字には意味があります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問