概要
会社の問い合わせフォームをGoogle Formにて作成し、問い合わせがあるとGoogle Apps Scriptにより問い合わせ先部署に自動でメールが届くようにしたいと考えております。
スクリプトは作成しましたが、特定の条件下でうまく作動しないことがあるため、お知恵を拝借できますでしょうか。
何卒よろしくお願い致します。
詳細
・問い合わせフォームはGoogleフォームにて作成。
・フォーム内の項目は以下の通りです。
(1) 「問い合わせ先(プルダウンで選択)」 *入力必須
(2) 「氏名」 *入力必須
(3) 「メールアドレス」 *入力必須
(4) 「件名」 *入力必須
(5) 「問い合わせ内容」 *入力必須
(6) 「添付ファイル」 *ファイルのアップロードが可能。任意。アップロードしないことも可能。
・Googleフォームに問い合わせ内容が入力され、送信されると、下記のGASにて(1)「問い合わせ先」部署に問い合わせ内容が自動でメールが届くようにしています。
上記の(1)~(5)のすべてが入力され、かつ(6)においてファイルが添付されている際には問題なく作動します。
★しかし、(6)「添付ファイル」に何もアップロードされていない場合にはスクリプトがエラーを起こし、作動しません。
以下のエラーメッセージが届きます。
関数 sendForm
エラー メッセージ Exception: 無効な引数: attachments
実現したいこと
(6)「添付ファイル」において、何もアップロードされていない場合でも、スクリプトが作動するような良い方法がございましたらご教示いただけますでしょうか。
宜しくお願い致します。
GASのスクリプト
function sendForm(e) {
var to = "sample@example.com";
// 件名
const subject = "問い合わせが届きました / A message has been received."
// 本文
let body = "以下のお問合せがございました。ご確認いただきますようお願い致します。返信する場合には、本文中のメールアドレスへの連絡をお願いします。 *本メールは配信専用です。本メールに配信なさらないようご注意ください。\nYou have received the following message. When replying, please contact them via the email address in the text below. *This is an automated message. Please do not reply to this email. "
let itemResponses = e.response.getItemResponses()
let attachImg1 = ""
for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
var type = itemResponse.getItem().getType();
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();
if (question==="問い合わせ先(部署名)") { if (answer==="人事部") { to = "hr@llmtc.ac.jp"; } else if (answer==="経理部") {to = "accounting@llmtc.ac.jp";} else if (answer==="広報部") {to = "pr@llmtc.ac.jp";} else if (answer==="総務部") {to = "generalaffairs@llmtc.ac.jp";} else if (answer==="法務部") {to = "leagal@llmtc.ac.jp";} else if (answer==="財務部") {to = "finance@ llmtc.ac.jp";} } if (question == "添付ファイル/Attached File") { attachImg1 = DriveApp.getFileById(answer).getBlob(); } // 回答項目 body += "\n\n【" + question + "】\n\n"; // 回答内容 body += answer;
}
let options = {
"attachments": [attachImg1]
}
MailApp.sendEmail(to, subject, body, options)
}
補足
上記スクリプト内のメールアドレスは架空のものに置き換えております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/30 02:13