はじめまして。
GmailをPDF化して「共有ドライブ」に保存する処理を自動化したく、
以下のコードをGASで実行してみましたが、Mydriveで動いたものの、
共有ドライブでは動きませんでした。
以下のコードのどこを編集すれば共有ドライブで実行可能になりますでしょうか。
ちなみに、Drive APIは追加しましたが、実行できませんでした。
アドバイスいただけますと幸いです。
よろしくお願いいたします。```ここに言語を入力
コード
ーーーーーーーーーーーーーーーーーーーーーーーーーーー function gmail_pdf() { //1 設定 //保存するフォルダ const folderID='フォルダID' //Gmailの抽出条件 const conditions = "label:GmailPDFtodrive" //抽出数 const mail_count = 6 //2 メールPDFテンプレートを読み込む //このドキュメント読み込み const templete =DocumentApp.getActiveDocument(); //ドキュメントのIDを読み込み const templeteID=templete.getId(); //3 Gmailから抽出 let search_mail = GmailApp.search(conditions,0,mail_count); let mail_message = GmailApp.getMessagesForThreads(search_mail); //4 抽出したメールからデータ取得 for(let i= 0;i<mail_message.length;i++){ for(let j= 0;j<mail_message[i].length;j++){ //日付 let date = mail_message[i][j].getDate(); //件名 let subject = mail_message[i][j].getSubject(); //送信元 let senderaddress = mail_message[i][j].getFrom(); //受取人 let myaddress = mail_message[i][j].getTo(); //メール本文 let body = mail_message[i][j].getPlainBody(); //テンプレートをコピー let copy_doc =DriveApp.getFileById(templeteID).makeCopy(folderID); //コピーしたドキュメントのID取得 let copy_docID= copy_doc.getId(); //コピーしたドキュメントを開く let doc = DocumentApp.openById(copy_docID); //コピーしたドキュメントからテキストを読み込む let doc_text =doc.getBody(); //テキストをGmailから取得したデータで置換 doc_text.replaceText('件名',subject).replaceText('送信元',senderaddress).replaceText('受取人',myaddress).replaceText('本文',body).replaceText('日付',date); //保存 doc.saveAndClose(); //PDFに変換 let pdf = doc.getAs('application/pdf'); //保存フォルダをGoogleドライブ上で読み込み const folder = DriveApp.getFolderById(folderID); //保存PDF名を設定 let filename = senderaddress+date; //PDFファイルを保存 folder.createFile(pdf).setName(filename); //コピーしたファイルを削除 const file = DriveApp.getFileById(copy_docID); file.setTrashed(true); }; }; };
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。