0

Googleスプレッドシートに格納されている配布リストにメールを送信するスクリプトを作成しようとしています。これをライブ環境に移動する前に、リストに3つの電子メールアドレスしかないテストシートを使用しています。私に送ってほしいのですが、リストに載っているすべての人にBCCを送信してください。sendEmailの受信者スポットに電子メールアドレスのリストを配置すると、スクリプトは正常に機能しますが、sendEmailのbccadvanced引数を使用して電子メールアドレスをbccスポットに移動しようとすると機能しません。その場合、次のエラーが発生します。

発生したエラー:無効な電子メール:[L; @ 130cab11

このエラーでは、スクリプトを実行するたびに「130cab11」の部分が変更されます。スクリプトの唯一の一貫した部分は、「エラーが発生しました:無効な電子メール:[L;...」」です。

私のスクリプトの関連部分は以下のとおりです。

// Retrieve data for the Email that will be sent///
   var email_column = ss.getSheetByName(sendtosheet)
   var lastrow = email_column.getLastRow()
   var get_email_data = email_column.getRange(2,2,lastrow-1,1).getValues()
   var emailTemplate = ss.getSheetByName("Email Templates").getRange("B1").getValue()
   var aliases = GmailApp.getAliases();
      Logger.log(aliases)

//Format the email
   var advancedArgs = {bcc:get_email_data,from: aliases[0]}
   var Self = "MyEmail@mycompany.com"
   var subject = "INVITE: Upcoming Focus Group Session";
   var message = emailTemplate

//Send the email
   GmailApp.sendEmail(Self, subject, message, advancedArgs)

このコードは、bcc引数を使用せずに電子メールを送信し、sendEmailコードを次のように構成すると、エラーなしで機能します。

//Send the email
   GmailApp.sendEmail(get_email_data, subject, message, {from: aliases[0]})

私はstackoverflowとgoogleスクリプトのマニュアルを検索しましたが、他のあらゆる場所で考えられるので、助けていただければ幸いです。

4

1 に答える 1

1

bcc リストを文字列として提供する必要があります。

var get_email_data = email_column.getRange(2,2,lastrow-1,1).getValues()

上記のステートメントの後get_email_dataに、指定された範囲のコンテンツであるオブジェクトの 2 次元配列が含まれます。そのため、エラー メッセージが不平を言って[L;...います。文字列が必要なときに配列を取得しましたが、やみくもに文字列として扱っており、難しいと感じています。

これを行う前に:

 var advancedArgs = {bcc:get_email_data,from: aliases[0]}

... 配列の内容を、部分文字列のコンマ区切りリストを含む文字列に結合する必要があります。幸いなことに、.toString()この 2 次元配列に対しても、Array メソッドがそれを行います。

var get_email_data = email_column.getRange(2,2,lastrow-1,1).getValues()
                                 .toString();
于 2013-05-31T13:59:55.343 に答える