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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Google Apps Script

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

Q&A

解決済

1回答

1804閲覧

GASのスクリプトで添付ファイルと差出人名が両立できない

ArtFam

総合スコア1

Google Apps Script

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

0グッド

0クリップ

投稿2021/06/01 14:03

編集2021/06/01 14:24

前提・実現したいこと

GASを用いて顧客へメールを一斉送信しておりました。

ある企画書を添付したメールを一斉送信したいと思い、不慣れながらも添付ファイルを加えたコーディングをしたところ
差出人名が指定出来ないようになりました。
(const options = {name: '      '};のoptionsの欄が薄い灰色になっています。)

let attachImg = DriveApp.getFileById("           ").getBlob();
let options = {
"attachments":attachImg,
};

上記の加えたコードを消すと差出人名が表示されるようになります。

添付ファイルを付けたまま差出人名が出るようにしたいです。
解決方法をご教授頂けると幸いです。

宜しくお願い致します。

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

エラーメッセージ

該当のソースコード

function sendMail(){

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

const DOC_URL = '                ';
const doc = DocumentApp.openByUrl(DOC_URL);
const docText = doc.getBody().getText();

const subject = '      ';
const options = {name: '      '};

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

const company = sheet.getRange(i, 1).getValue();   const lastName = sheet.getRange(i, 2).getValue(); //姓 const firstName = sheet.getRange(i, 3).getValue(); //名 const recipient = sheet.getRange(i, 4).getValue(); const body = docText .replace('{社名}',company) .replace('{姓}',lastName) .replace('{名}',firstName); let attachImg = DriveApp.getFileById("           ").getBlob(); let options = { "attachments":attachImg, }; GmailApp.sendEmail(recipient, subject, body, options);

}
}

試したこと

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

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

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

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

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

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

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

guest

回答1

0

ベストアンサー

nameとattachmentを1つのoptionsに統合すればよいのではないでしょうか。

diff

1function sendMail() { 2 const sheet = SpreadsheetApp.getActiveSheet(); 3 const lastRow = sheet.getLastRow(); 4 5 const DOC_URL = "                "; 6 const doc = DocumentApp.openByUrl(DOC_URL); 7 const docText = doc.getBody().getText(); 8 9 const subject = "      "; 10- const options = { name: "      " }; 11 12 for (let i = 2; i <= lastRow; i++) { 13 const company = sheet.getRange(i, 1).getValue(); 14 const lastName = sheet.getRange(i, 2).getValue(); //姓 15 const firstName = sheet.getRange(i, 3).getValue(); //名 16 const recipient = sheet.getRange(i, 4).getValue(); 17 18 const body = docText 19 .replace("{社名}", company) 20 .replace("{姓}", lastName) 21 .replace("{名}", firstName); 22 23 let attachImg = DriveApp.getFileById("           ").getBlob(); 24- let options = { 25- attachments: attachImg, 26- }; 27+ const options = { 28+ attachments: attachImg, 29+ name: "      " 30+ }; 31 32 GmailApp.sendEmail(recipient, subject, body, options); 33 } 34}

投稿2021/06/01 14:22

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ArtFam

2021/06/01 14:28

ありがとうございました、頂いたコードで解決致しました。 迅速にご回答いただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問