当前位置: 首页 > 知识库问答 >
问题:

根据给定数据自动发送电子邮件

公冶高峯
2023-03-14

代码不应该在“参考”表中的“n”栏中的“电子邮件发送”栏中再次发送电子邮件。

function sendEmails2() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheetname= sheet.getSheetByName("Reference");
  var startRow = 2; // First row of data to process
  var numRows = sheetname.getLastRow("Reference"); // Number of rows to process
  // Fetch the range of cells A2:B3
  var dataRange = sheetname.getRange(startRow, 1, numRows, 15);
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[6]; // First column
    var message = row[13]; // Second column
    var emailSent = row[14]; // Third column
    if (emailSent !== EMAIL_SENT && row[12] == "Mail Send"  && row[6] != "") { // Prevents sending duplicates
      var subject = row[11];
      MailApp.sendEmail(emailAddress, subject, message);
      sheetname.getRange(startRow + i, 15).setValue(EMAIL_SENT);
      // Make sure the cell is updated right away in case the script is interrupted
      SpreadsheetApp.flush();
    }
  }
}

如有任何帮助,我将不胜感激

共有1个答案

方光华
2023-03-14

先原谅英国人

为此,您可以使用下面的代码,并忽略“引用”选项卡

不要忘记创建触发器,以便在表单发送后触发触发器。

function Send_email() { 

  var INITIALline = 2; 
  var columnSEND = 11;  
  var STATUScolumn = 12;
  var textCONDITION = "Submit";
  var textSENT = "Sent"
    
  var tab = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data"); 
  var interval = tab.getRange(INITIALline,1,tab.getLastRow()-INITIALline+1,STATUScolumn);
  var dice = interval.getValues();
  var yousent = false;
  var email,subject,message;
  
  for (var i=0; i<dice.length; ++i) {
    if((dice[i][columnSEND-1]==textCONDITION) && (dice[i][STATUScolumn-1]!=textSENT)){
    
      var email    = dice[i][6]
    
      subject = dice[i][7]+" | Your CASE ID IS | "+dice[i][0];
            
      var message = "<font size='3' face='Comfortaa'>Dear "+dice[i][3]+",<br/><br/>"+
      
                     "Thanks for connecting with us. This is your case id "+dice[i][0]+"..<br/><br/>"+
                     
                     "<i>Thanks & Regards</i><br/>"+
                     "<b>Team</b>";
      
      MailApp.sendEmail(email, subject, message,{ htmlBody: message});
      tab.getRange(INITIALline+i,STATUScolumn).setValue(textSENT);
      yousent = true;
      SpreadsheetApp.flush();
    }
  }
 }
 类似资料:
  • 我正在用我的电子邮件Id发送我的邮件数据。我制作了一个包含editText(用于emailId)和按钮的mainActivity类。另一个类是BroadcastReceiver类,我在其中检索数据。现在我不明白如何将这些数据发送到后台提供的电子邮件中。我在谷歌上搜索了很多,但都没有得到所需的回复。请分享这些想法并帮助我。

  • 我正在尝试创建一个脚本,为每个包含今天日期的单元格发送电子邮件。以下是我目前掌握的情况: 以下是我对脚本工作逻辑的设想: estimatedReturnDate最初获取F列中的第一个单元格,这是一个日期列表。 TodayDate获取单元格S1,其中包含今天的日期。 然后,for循环遍历工作表的所有行,并检查是否估计了返回日期=今天日期。如果是,将发送一封电子邮件,其中包含与今天日期匹配的行号。 然

  • 我四处搜索,从我可以看出,大多数人只是使用一个SMTP插件为这...但是,我想知道怎么了!:) 几周前,我们开始收到报告说,客户没有收到他们的确认电子邮件,当他们下了订单在我们的商店。这以前工作得很好。这里是真正奇怪的部分,据我所知,它只是当我下了一个订单,处理电子邮件没有发送。我们有两种支付选择,贝宝和克拉纳。两个都有用,我自己也试过。我给自己下了真正的订单,一切都很顺利...除了来自Wooco

  • 我需要使用客户端设置发送电子邮件。对主机的访问使用STARTTLS安全,使用端口587。测试rode以下代码(为安全起见更改了客户数据): 例外情况: javax.mail.SendFailedException:无效地址;嵌套异常为:com.sun.mail.smtp.smtpAddressFailedException:554 5.7.1未知[000.000.000.00]:拒绝客户端主机:拒

  • 我正在用Laravel 4发送电子邮件: 消息用熨斗排队。木卫一。电子邮件会发送给收件人,但$data数组不会传递给电子邮件视图。 我的日志文件中出现以下错误: 它工作正常,直到我配置我的队列。任何想法? 代码视图(刀片模板):

  • 问题内容: 在Swift 的正常情况下,我使用此代码发送邮件。 如何在SwiftUI中实现相同目标? 我需要使用吗? 问题答案: 如前所述,您需要将组件移植到via 。 这是一个简单的实现: 用法 : (在运行iOS 13的iPhone 7 Plus上进行了测试-就像一个护身符) 为Xcode 11.4更新