Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 在Google Apps脚本中将电子邮件地址或ReplyTo更改为_Email_Google Apps Script_Google Forms - Fatal编程技术网

Email 在Google Apps脚本中将电子邮件地址或ReplyTo更改为

Email 在Google Apps脚本中将电子邮件地址或ReplyTo更改为,email,google-apps-script,google-forms,Email,Google Apps Script,Google Forms,我有一个我们在谷歌上创建的表单,我的团队用它来发送每日报告。我复制了一个脚本,将一封包含表单内容的电子邮件发送给我们公司的几个不同的人。唯一的问题是,每封电子邮件都来自我,而不是提交表单的用户。如何将其添加到脚本中?此外,在提交每个表单时都会捕获电子邮件,这样它就可以从电子表格中提取电子邮件了 代码如下: function Initialize() { try { var triggers = ScriptApp.getProjectTriggers(); for (v

我有一个我们在谷歌上创建的表单,我的团队用它来发送每日报告。我复制了一个脚本,将一封包含表单内容的电子邮件发送给我们公司的几个不同的人。唯一的问题是,每封电子邮件都来自我,而不是提交表单的用户。如何将其添加到脚本中?此外,在提交每个表单时都会捕获电子邮件,这样它就可以从电子表格中提取电子邮件了

代码如下:

function Initialize() {

  try {

    var triggers = ScriptApp.getProjectTriggers();

    for (var i in triggers)
      ScriptApp.deleteTrigger(triggers[i]);

    ScriptApp.newTrigger("EmailGoogleFormData")
      .forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
      .onFormSubmit().create();

  } catch (error) {
    throw new Error("Please add this code in the Google Spreadsheet");
  }
}

function EmailGoogleFormData(e) {

  if (!e) {
    throw new Error("Please go the Run menu and choose Initialize");
  }

  try {

    if (MailApp.getRemainingDailyQuota() > 0) {

      // You may replace this with another email address
      var to = "kevin@example.com";

      // Enter your subject for Google Form email notifications
      var subject = "Daily Report";

      var key, entry,
        message = "",
        ss = SpreadsheetApp.getActiveSheet(),
        cols = ss.getRange(1, 1, 1, ss.getLastColumn()).getValues()[0];

      // Iterate through the Form Fields
      for (var keys in cols) {

        key = cols[keys];
        entry = e.namedValues[key] ? e.namedValues[key].toString() : "";

        // Only include form fields that are not blank
        if ((entry !== "") && (entry.replace(/,/g, "") !== ""))
          message += key + ' :: ' + entry + "\n\n";
      }

      MailApp.sendEmail(to,subject, message);
    }
  } catch (error) {
    Logger.log(error.toString());
  }
}

MailApp不允许您更改电子邮件的发送地址,它将始终从执行脚本的Google帐户发送

(使用MailApp)可以获得的最接近的结果是指定传出电子邮件的名称和回复值。电子邮件仍然来自您的地址,但会显示另一个名称,并且任何回复都可以指向相应的用户

请参见此处的高级参数:


MailApp不允许您更改电子邮件的发送地址,它将始终从执行脚本的Google帐户发送

(使用MailApp)可以获得的最接近的结果是指定传出电子邮件的名称和回复值。电子邮件仍然来自您的地址,但会显示另一个名称,并且任何回复都可以指向相应的用户

请参见此处的高级参数:

选项1:设置-然后使用

GmailApp.sendMail('toEmail','subject','plainBody',{from:'theOtherAddress@gmail.com,htmlBody:htmlBody})

在options参数中指定
from
属性将更改其来源

电子邮件将显示为来自您的主地址“”的另一个地址

选项2:让每个可能的用户授权一个脚本,该脚本监视表单中的表单提交,并通过MailApp或GmailApp直接从其帐户发送通知。

选项1:设置-然后使用

GmailApp.sendMail('toEmail','subject','plainBody',{from:'theOtherAddress@gmail.com,htmlBody:htmlBody})

在options参数中指定
from
属性将更改其来源

电子邮件将显示为来自您的主地址“”的另一个地址


选项2:让每个可能的用户授权一个脚本,该脚本监视表单提交,并通过MailApp或GmailApp直接从他们的帐户发送通知。

我建议您使用邮件发送网格服务,如MailGun,它提供HTTP API,让您发送电子邮件更灵活

但我不确定它是否能让你“像任何人一样发送电子邮件”。如果它不能,也许你必须设置自己的电子邮件服务器来实现这一点


我建议您使用像MailGun这样的邮件发送网格服务,它提供了一个HTTP API,让您可以更灵活地发送电子邮件

但我不确定它是否能让你“像任何人一样发送电子邮件”。如果它不能,也许你必须设置自己的电子邮件服务器来实现这一点


您已经尝试解决了什么问题?Bryan,我已经研究了Gmail应用程序,显然那里有一个From命令,但我不确定代码放在哪里@布莱恩,你已经尝试过解决这个问题了吗?布莱恩,我已经研究过Gmail应用程序,很明显那里有一个From命令,但我不确定把代码放在哪里@布莱恩基本上是一样的。GmailApp允许您访问该脚本所使用的用户帐户的收件箱/线程和其他Gmail功能,而MailApp仅用于发送邮件。我不相信GmailApp提供了一种选择或访问其他用户收件箱或以其他用户身份发送的方法。如果您必须让邮件来自提交表单的用户,那么您可以完全放弃Google表单,用HTML创建表单,并从doGet()以脚本形式提供,该脚本发布为“作为访问脚本的用户执行”。见:基本相同。GmailApp允许您访问该脚本所使用的用户帐户的收件箱/线程和其他Gmail功能,而MailApp仅用于发送邮件。我不相信GmailApp提供了一种选择或访问其他用户收件箱或以其他用户身份发送的方法。如果您必须让邮件来自提交表单的用户,那么您可以完全放弃Google表单,用HTML创建表单,并从doGet()以脚本形式提供,该脚本发布为“作为访问脚本的用户执行”。请参阅:“发件人”选项不存在“发件人”选项不存在