やりたいこと
【不定期で送られてくる納期連絡のメールからファイルを取得してChatworkに転送したい】
1,Gmailに送られてくる、特定のタイトルのメールを1件だけ取得
2,1で取得したメールに添付されているExcelファイルを取得
3,2で取得したExcelファイルをChatworkに送信したい
出来たこと
1,特定のタイトルのメールを取得
困っていること
2,3が実装できない。
・添付されてくるExcelファイルが取得できない(?)
・取得出来ているがChatworkに送れていない(?)
使用ライブラリ:ChatWorkClient for Google Apps Script
function
//チャットワークトークン・ID const CW_TOKEN = "トークンID"; const CW_ROOM = ルームID; const CW_TO = 00000; //Gmailから特定条件のスレッドを検索しメールを取り出す var strTerms = 'is:unread "納期の連絡"'; var myThreads = GmailApp.search(strTerms, 0, 1); //条件にマッチしたスレッドを取得 var myMsgs = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得する→二次元配列で格納 //チャットワークAPI var client = ChatWorkClient.factory({ token: CW_TOKEN }); //各スレッド×メール for (var i = myMsgs.length - 1; i >= 0; i--) { var msgsInThread = myMsgs[i]; for (var j = 0; j < msgsInThread.length; j++) { var msg = msgsInThread[j]; //未読のみ if (msg.isUnread()) { //メールを既読にする msg.markRead(); var date = new Date(); Logger.log(msg); var attachments = msg.getAttachments(); Logger.log(attachments); //メッセージ作成 var msgBody = Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd') +"[hr]" +"納期連絡" + attachments; //チャットワークに送る client.sendMessage({ room_id: CW_ROOM, body: msgBody }); } } } }
var attachments = msg.getAttachments();
この部分でExcelファイルの取得が出来ていると思っていたのですが、できておらず
Chatwork上では「GmailAttachment」という文字列のみが出力されてしまいます。
恐れ入りますが、ご教授いただけますと幸いです。
まだ回答がついていません
会員登録して回答してみよう