【问题标题】:Google Sheet Email谷歌表格电子邮件
【发布时间】:2021-04-08 02:03:04
【问题描述】:

我需要发送 A 列中列出的所有电子邮件中的消息,请帮助,

var e1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sampling").getRange("A:A");
var email1 = e1.getValue();
var mes1 =  crypto1 + 'our value ' + (changedd * 100) + '  Average value ' + (Sales * 100 );
MailApp.sendEmail(email1, sub1, mes1, mes1);

只有 A 列中的第一个单元格会收到电子邮件

【问题讨论】:

    标签: google-apps-script google-sheets gmail


    【解决方案1】:

    我相信你的目标如下。

    • 您想使用MailApp.sendEmail 发送电子邮件,方法是从活动电子表格的“抽样”表的“A”列中检索电子邮件地址。

    修改点:

    • 在您的脚本中,email1 的值是“A”列第一行的单元格值。我了解这是您当前的问题。在这种情况下,您可以使用 getValues() 从“A”列中检索值。
    • 而且,我认为可能需要考虑空值和重复值。
    • 关于MailApp.sendEmail(email1, sub1, mes1, mes1),当sub1为邮件主题时,请使用sendEmail(recipient, subject, body)Ref 因为像MailApp.sendEmail(email1, sub1, mes1, mes1) 这样使用4 个参数时,第二个参数是回复地址。 Ref这个请小心。

    当以上几点反映到你的脚本中时,它变成如下。

    修改脚本:

    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sampling");
    var emails = [... new Set(sheet.getRange("A1:A" + sheet.getLastRow()).getValues().reduce((ar, [a]) => {
      if (a) ar.push(a);
      return ar;
    }, []))];
    var mes1 =  crypto1 + 'our value ' + (changedd * 100) + '  Average value ' + (Sales * 100 );
    emails.forEach(email => MailApp.sendEmail(email, sub1, mes1));
    
    • 在这种情况下,假设crypto1changeddSalessub1的变量已经被声明。请注意这一点。

    注意:

    • 当您想通过将电子邮件包含为cc 来发送电子邮件时,请将上面的脚本修改如下。

      • 来自

          emails.forEach(email => MailApp.sendEmail(email, sub1, mes1));
        
      •   MailApp.sendEmail({subject: sub1, body: mes1, cc: emails.join(",")});
        

    参考资料:

    【讨论】:

    • 非常感谢,
    • @john foreign PH 感谢您的回复。我很高兴你的问题得到了解决。也谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    相关资源
    最近更新 更多