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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

6500閲覧

GASでウェブから取得した画像を埋め込みメール送信したい

somsom

総合スコア14

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/12/22 22:50

前提・実現したいこと

Google Apps Scriptにてバーコードの画像を埋め込んだメールを
自動返信したいと考えております。

想定される処理は以下です。

①フォームから会員情報を入力
②スプレッドシートに結果を出力し、会員番号を生成
③会員番号をもとに、インターネットのサービスでバーコードを生成
④生成されたバーコードを画像埋め込みして、メールで自動返信する

バーコードの生成は以下のサイトを利用する想定です
Free Online Barcode Generator: Make a Custom Barcode in Seconds
https://www.barcodesinc.com/generator/index.php

http://www.barcodesinc.com/generator/image.php?code=" & (バーコードにしたい数値) & "&style=68&type=C128B&width=245&height=50&xres=1&font=3
参考:https://qiita.com/3mc/items/876125e40d70ad5a6ea3

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

画像埋め込みのため、inlineImagesを利用しても画像が表示されません

該当のソースコード

var bacode = sheet.getRange("A1").getValue();
var image = UrlFetchApp.fetch("https://www.barcodesinc.com/generator_files/image.php?code="+bacode+"&style=68&type=C128B&width=1000&height=200&xres=2&font=3").getBlob()
var title = "会員証";
var body
= "ご登録ありがとうございました。\n"
+"お買い上げ時に下記の会員証をご提示ください。\n"

  • "会員番号は【" +bacode+ "】です。\n\n";
  • "------------------------------------------------------------\n";

var footer
= "------------------------------------------------------------\n\n"

  • "ご不明な点はお問い合わせください。";

Logger.log(image)

var name = '氏名';
var mail = 'メールアドレス';
var address = "";

var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getLastRow();
var cols = 7;
var rg = sheet.getDataRange();
Logger.log("rows="+rows+" cols="+cols);

for (var i = 1; i <= cols; i++ ) {
var col_name = rg.getCell(1, i).getValue();
var col_value = rg.getCell(rows, i).getValue();
body += "■"+col_name+"\n";
body += col_value + "\n\n";
if ( col_name === name ) {
body = col_value+" 様\n\n"+body;
}
if ( col_name === mail ) {
address = col_value;
}
}
body += footer;

//GmailApp.sendEmail(address,title,body);
GmailApp.sendEmail(address, title, body, {
name: address,
htmlbody: title,
inLineImages: image
})
}

試したこと

画像挿入について記載してある下記ページを参照しましたが、依然解決しない状況です。

https://qiita.com/mistolteen/items/404c10657b1b27007a3c
https://qiita.com/t114/items/6f4e4399c8dd3699c373

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

お手数ですが、ご対応お願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

これでいけました。

GAS

1function myFunction() { 2 var image = UrlFetchApp.fetch("https://www.barcodesinc.com/generator_files/image.php?code=hello&style=68&type=C128B&width=1000&height=200&xres=2&font=3"); 3 4 MailApp.sendEmail({ 5 to: '<メールアドレス>', 6 subject: '画像', 7 htmlBody: '<img src="cid:test"><br/>', 8 inlineImages: { 9 test: image.getBlob().getAs('image/png'), 10 }}) 11}

getBlob()だけだと謎のphpファイルがメールに添付されたいたのでgetAs関数も付加してみました。

投稿2018/12/24 23:51

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

回答ありがとうございます。画像で表示されました。ありがとうございました。
追加のご質問で恐縮ですが、本文の 変数bodyを表示するにはどうすれば良いでしょうか?htmlBody の項目に変数を入れ込む形になりますでしょうか?
よろしくお願いたします。

投稿2018/12/25 18:31

somsom

総合スコア14

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

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

退会済みユーザー

退会済みユーザー

2018/12/25 18:42

これでうまく動作しますか? MailApp.sendEmail({ to: '<メールアドレス>', subject: '画像', htmlBody: body + '<img src="cid:test">', inlineImages: { test: image.getBlob().getAs('image/png'), }})
somsom

2018/12/28 18:25

ありがとうございました。body の内容をhtml形式に修正することで、うまく表示できました。 大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問