解決したい課題
以下のスクリプトを実行してcalendarIdに記載したメールアドレス宛にリマインドメールが送られるようにしたい。
スクリプト
function myFunction() { var calendarId = 'xxxxxxxx@gmail.com';//送りたい相手のメールアドレスを記載する var myCalendar = CalendarApp.getCalendarById(calendarId); var startDate = new Date();//取得開始日 var endDate = new Date();//取得終了日 endDate.setDate(endDate.getDate()+14);//2週間後の日にちを設定 var myEvents = myCalendar.getEvents(startDate, endDate); var myEvent = myEvents[0]; var eventId = myEvent.getId().split('@')[0]; var title = myEvent.getTitle(); var date = myEvent.getStartTime(); date = Utilities.formatDate(date, 'Asia/Tokyo', 'yyyy年M月d日') var eventUrl = 'https://www.google.com/calendar/event?eid='+Utilities.base64Encode(eventId+" "+calendarId); var guests = myEvent.getGuestList(); var guest = guests[0]; var status = guest.getGuestStatus() if (status=='INVITED'){ var email = guest.getEmail(); var subject = '【リマインドメール】出欠の返答をお願いします。'; var body = '以下の日程の出欠の記入をお願いします。\n\ -----------------\n予定名:${title}\n日時:${date}\nURL:${eventUrl}' .replace('${title}',title) .replace('${date}',date) .replace('${eventUrl}',eventUrl); GmailApp.sendEmail(email, subject, body); } }
現状
スクリプトを実行してもエラーは表示されない。
しかし、メールは届かない。
※Googleカレンダーには予定を入れております。
全くわかりません。
コードに間違いがあるようには思えません。
何か間違いがありましたら、教えていただけますと非常にうれしいです。
追記(随時更新)
問題の切り分け中
・eventIdも想定通り、取得できている。
・eventUrlを取得し、URLに直接入力したが、今回設定したメールアドレスのアカウントのGoogleカレンダーが開かれず、デフォルトで設定しているアカウントのGoogleカレンダーが表示されてしまう。←ここが被疑箇所となりそうです。
・↑chromeのデフォルトアカウントの設定を今回設定したメールアドレスのアカウントに変更し、再度eventUrlで取得した文字列をURLに貼り付けたら、想定通りの挙動が得られた。
・しかし、最終系のコードで実行すると、リマインドメールは届かない。
・statusを出力させると想定通り、INVITEDの文字が表示される。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/08 01:04 編集
2020/04/08 14:05
2020/04/10 14:58
2020/04/10 15:02