質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

2436閲覧

GAS:エラーが表示されてしまいます...泣 エラー名:SyntaxError: missing ) after argument list

Sakananonaka

総合スコア2

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

1クリップ

投稿2021/10/08 02:31

前提・実現したいこと

GoogleのプログラミングツールGAS(GoogleAppsScript)についてご質問です。

Googleフォームに記入後、自動でメールの案内文がいくような仕組みをつくりたく、初めてプログラミングを行いました。

いろんなサイトを閲覧し、見よう見まねでコードを書き、実行しようとしたのですが、

「SyntaxError: missing ) after argument list(行 18、ファイル「mailmaga.gs」)」というエラーメッセージが表示されてしまいます。。

どこかおかしいのかわからず、みなさんのお力を借りたいと思います泣

以下にコードを記載いたしますので、詳しい方お教え頂ければ幸いです。

発生している問題・エラーメッセージ

一番下の4行のコードを書いてからエラーが発生しました。
通常のGoogleアドレスからの送信はできましたが、outlookからの送信にしたく、コードを書き込んだところ、エラーが発生したようです、、、

エラーが出たコード:
「GmailApp.sendEmail(recipient, subject, body, options{ from:’outlookのメールアドレス’
}
);
} 」

該当のソースコード

【記入コード】※一部GoogleドキュメントのID・メールアドレス等を伏せています。

function mailMaga() {
const sheet =
SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow(); const doc = DocumentApp.openById('〇〇');
const docText = doc.getBody().getText();
const subject = '【テスト】メール送信テスト';
const options = {name: '送信者'};

for (let i = 2; i <= lastRow; i++) {
const company = sheet.getRange(i, 3).getValue();
const Name = sheet.getRange(i, 2).getValue();
const recipient = sheet.getRange(i, 4).getValue();
const body = docText

.replace('{ご所属会社・団体名}',company) .replace('{お名前}',Name);

GmailApp.sendEmail(recipient, subject, body, options{ from:’outlookのメールアドレス’
}
);
}

試したこと

なんどかHPなどを見て、問題がないか確認したのですが、
素人ではわからず。。。

補足情報(FW/ツールのバージョンなど)

なし。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

3_April_2021

2021/10/08 12:55

optionsに{name: '送信者'}を与えてoptions{ from:’outlookのメールアドレス’}としても、sendEmailに目的のfromとnameの値を設定することはできません。この情報が疑問解決に役立たない場合は、{name: '送信者'}と{ from:’outlookのメールアドレス’}を分けた理由を教えてほしいです。
Sakananonaka

2021/10/11 05:01 編集

3_April_2021  ご回答いただきありがとうございます。 ご指摘の通り、fromの部分に名前を指定できるようにプログラムしていたつもりだったのですが、 この方法では意味がないのですね・・ ちなみに、プログラムを記載いただいた部分の、「// ↓こうかくと、誰かがフォームに書き込むたびに、それまでの全ての相手にメールを送ることになります。// それでいいなら、フォーム送信時トリガーにはこちらをセットしてください。」についてですが、可能ならば、フォーム書き込みをした人のみに案内文をメール送信出来たらよいと考えております。 なにか方法をご存知でしたら教えていただけないでしょうか、、
Sakananonaka

2021/10/11 14:28

申し訳ございません。。先ほど記載いただいたコードを試してみました。 いただいたコードですが、2パターンを記載いただいたんですね..! 私の無知でご迷惑をおかけして申し訳ありませんでした..泣 無事、いただいたコードで動きましたので、「解決」といたします。 本当にありがとうございました!!
3_April_2021

2021/10/12 05:00

3_April_2021は回答ユーザと同一人物ではありません。基礎的な文法知識の欠如によるミスに見えたので、理解を放置して解決するのは解決にならないと思い、回答ではなく上記のコメントを残しました。今の回答でユーザの問題が解決したと思うなら、それで問題ありません。
guest

回答1

0

ベストアンサー

javascript

1function mailMaga() { 2 const sheet = SpreadsheetApp.getActiveSheet(); 3 const lastRow = sheet.getLastRow(); 4 const doc = DocumentApp.openById('〇〇'); 5 const docText = doc.getBody().getText(); 6 const subject = '【テスト】メール送信テスト'; 7 const options = {name: '送信者'}; 8 9 const company = sheet.getRange(lastRow, 3).getValue(); 10 const Name = sheet.getRange(lastRow, 2).getValue(); 11 const recipient = sheet.getRange(lastRow, 4).getValue(); 12 const body = docText.replace('{ご所属会社・団体名}', company).replace('{お名前}', Name); 13 14 GmailApp.sendEmail(recipient, subject, body, {...options, from: 'outlookのメールアドレス'}); 15} 16// ↓こうかくと、誰かがフォームに書き込むたびに、それまでの全ての相手にメールを送ることになります。 17// それでいいなら、フォーム送信時トリガーにはこちらをセットしてください。 18function mailMaga_spamming() { 19 const sheet = SpreadsheetApp.getActiveSheet(); 20 const lastRow = sheet.getLastRow(); 21 const doc = DocumentApp.openById('〇〇'); 22 const docText = doc.getBody().getText(); 23 const subject = '【テスト】メール送信テスト'; 24 const options = {name: '送信者'}; 25 26 for (let i = 2; i <= lastRow; i++) { 27 const company = sheet.getRange(i, 3).getValue(); 28 const Name = sheet.getRange(i, 2).getValue(); 29 const recipient = sheet.getRange(i, 4).getValue(); 30 const body = docText.replace('{ご所属会社・団体名}', company).replace('{お名前}', Name); 31 32 GmailApp.sendEmail(recipient, subject, body, {...options, from: 'outlookのメールアドレス'}); 33 } 34}

投稿2021/10/08 19:00

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問