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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Gmail

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

Google Apps Script

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

2回答

7628閲覧

GASでメール送信。送信元を変更したい。

Haluka

総合スコア2

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Gmail

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

Google Apps Script

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

1クリップ

投稿2021/12/09 09:42

前提・実現したいこと

GASを使用して、スプレットシートに記載したメールアドレスにGmail以外のアドレスから一斉送信したい。
Gmailには送信元のアドレスは追加済みです。

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

Gmailではなく、他のアドレスを指定するとエラーを吐き出す。 エラーメッセージ myFunction を実行しようとしましたが、プロジェクトを保存できませんでした。

該当のソースコード

const options = { Name: '株式会社○○' Form: "marumaru@○○.co.jp” };

試したこと

コード全文

function myFunction(){

const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();;

const DOC_URL = 'https://本文のシート';  
const doc = DocumentApp.openByUrl(DOC_URL);
const docText = doc.getBody().getText();

const subject = 'お礼';    

const options = {
Name: '株式会社○○'
Form: "marumaru@○○.co.jp

};

for(let i = 2; i <= lastRow; i++){

const company = sheet.getRange(i, 1).getValue();   const lastName = sheet.getRange(i, 2).getValue();  const recipient = sheet.getRange(i, 3).getValue(); const body = docText .replace('{社名}',company) .replace('{名前}',lastName) GmailApp.sendEmail(recipient, subject, body, options); }

}

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

コードに関する知識を持っている人間が社内にいない為、初めて色々なサイトを見よう見まねで作成しました。
実行をすると該当のコードでエラーを吐き出してしまいます。
知識が無い為、色々試しましたがうまく行かず・・・。
部分的に乗せても分からないと思いますので上記にコードを全て記載致しました。
お手数ですがご教授頂けますと幸いです。

const options = {
Name: '株式会社○○'
Form: "marumaru@○○.co.jp”

};

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答2

0

ベストアンサー

こんばんは。
投稿主と同じく駆け出しの事務作業担当で最近GASで同様の作業をしている者です。

まず
"myFunction を実行しようとしましたが、プロジェクトを保存できませんでした。"
=>このエラーはダブルクオーテーションや括弧の閉じ忘れなどに起因する場合がほとんどかと思います…。

投稿頂いた内容を元に整形とコメントを追加してみましたので参考にして頂ければ幸いです。

GAS

1function myFunction(){ 2 const sheet = SpreadsheetApp.getActiveSheet(); 3 const lastRow = sheet.getLastRow(); 4 const DOC_URL = 'https://本文のシート'; 5 const doc = DocumentApp.openByUrl(DOC_URL); 6 const docText = doc.getBody().getText(); 7 const subject = 'お礼'; 8 const options = { 9 name: '株式会社○○',//オプションが複数の場合はカンマでつなぐ 10 from: "marumaru@○○.co.jp"//ダブルクオーテーション漏れ 11 }; 12 //メール送信のループ処理ここから 13 for(let i = 2; i <= lastRow; i++){ 14 const company = sheet.getRange(i, 1).getValue();   15 const lastName = sheet.getRange(i, 2).getValue();  16 const recipient = sheet.getRange(i, 3).getValue(); 17 const body = docText 18 .replace('{社名}',company) 19 .replace('{名前}',lastName); 20 GmailApp.sendEmail(recipient, subject, body, options); 21 } 22}

※オプション箇所の参考記事
https://hirachin.com/post-3409/

投稿2021/12/10 15:04

T_mari

総合スコア73

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

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

Haluka

2021/12/13 06:16

お返事遅くなり申し訳ありません。 試したところ記載頂いたコードで無事配信元変更してメールを送信することが出来ました! すごく初歩的なミスだったんですね・・・落ち着いて見直そうと思います。 モヤモヤしていたので非常に助かりました!ありがとうございます!
guest

0

ざっくりとした理解しかできていませんが参考になれば。

送信元に使用しようとしている別ドメインのアドレスを予めgmailにエイリアスとして登録しておく必要があります。

ああ、質問文の最後に書いてありましたね。
失礼しました。

投稿2021/12/09 15:17

編集2021/12/09 15:20
com.woody

総合スコア43

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

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

Haluka

2021/12/10 05:01

回答頂き、ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問