実現したいこと
GmailのアドオンからGASを実行して、下書き保存のメールに問題がないかチェックしたい
前提
デプロイ→アドオンがサイドバーに表示されるまでの確認はできてますが、そこからGASの実行ができないです
具体的には、UIの表示が全くできてない状態となります
しかし、自身では原因が分からず困っています
UIの表示が全くできない状態なので、下書き保存でチェックしたい内容の説明は省略します
該当のソースコード
appsscript.json
GAS
1{ 2 "timeZone": "Asia/Tokyo", 3 "dependencies": {}, 4 "oauthScopes": [ 5 "https://www.googleapis.com/auth/gmail.addons.execute", 6 "https://www.googleapis.com/auth/gmail.readonly", 7 "https://www.googleapis.com/auth/gmail.send", 8 "https://www.googleapis.com/auth/script.locale", 9 "https://www.googleapis.com/auth/userinfo.email" 10 ], 11 "gmail": { 12 "name": "checker", 13 "logoUrl": "https://www.gstatic.com/images/icons/material/system/2x/add_circle_outline_white_24dp.png", 14 "primaryColor": "#4285F4", 15 "secondaryColor": "#4285F4", 16 "contextualTriggers": [ 17 { 18 "unconditional": {}, 19 "onTriggerFunction": "onGmailMessageOpen" 20 } 21 ] 22 } 23}
Sidebar.html
GAS
1<!DOCTYPE html> 2<html> 3 <head> 4 <base target="_top"> 5 </head> 6 <body> 7 <h1>checker</h1> 8 <p>下書きメールの添付ファイルをチェックします。</p> 9 <button onclick="google.script.run.checkDraftAttachments()">下書きチェックを実行</button> 10 <p>結果はログで確認してください。</p> 11 </body> 12</html>
GAS
1function onGmailMessageOpen(e) { 2 var cardSection = CardService.newCardSection() 3 .addWidget(CardService.newTextParagraph().setText('下書きの添付ファイルをチェックしますか?')); 4 5 var button = CardService.newTextButton() 6 .setText('チェックを実行') 7 .setOnClickAction(CardService.newAction().setFunctionName('checkDraftAttachments')); 8 9 cardSection.addWidget(button); 10 11 var card = CardService.newCardBuilder() 12 .setHeader(CardService.newCardHeader().setTitle('checker')) 13 .addSection(cardSection) 14 .build(); 15 16 return card; 17} 18 19function checkDraftAttachments() { 20 var drafts = GmailApp.getDrafts(); 21 22 if (drafts.length === 0) { 23 Logger.log("下書きがありません。"); 24 return; 25 } 26 27 for (var i = 0; i < drafts.length; i++) { 28 var draft = drafts[i]; 29 var message = draft.getMessage(); 30 var recipientEmail = message.getTo(); 31 32 if (!recipientEmail) { 33 Logger.log("宛先が設定されていない下書きがあります。"); 34 continue; 35 } 36 37 var domain = recipientEmail.split('@')[1].split('.')[0]; 38 39 var attachments = message.getAttachments(); 40 if (attachments.length > 0) { 41 for (var j = 0; j < attachments.length; j++) { 42 var fileName = attachments[j].getName(); 43 if (!fileName.includes(domain)) { 44 Logger.log("警告: 添付ファイル名がドメインと一致していません - " + fileName); 45 } else { 46 Logger.log("添付ファイル名がドメインと一致しています - " + fileName); 47 } 48 } 49 } else { 50 Logger.log("添付ファイルがありません。"); 51 } 52 } 53}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。