gpt4 book ai didi

javascript - 来自电子表格 Javascript 的电子邮件 : How to make message equal more than one column?

转载 作者:行者123 更新时间:2023-11-30 05:34:58 26 4
gpt4 key购买 nike

我和一位同事正在使用 Google 表单收集学生的短文。数据被写入电子表格。我们希望将反馈输入到电子表格中,并让一个脚本通过电子邮件向每位学生发送一份他们的论文副本和反馈。

Google 提供了以下代码(来源:Email Code):

我们已经想出如何增加脚本从电子表格中读取的行数以考虑我们的类(class)规模。

我们无法弄清楚的是如何使消息等于文章(在一个专栏中)和反馈(在另一个专栏中)。我们需要更改代码中的哪些内容才能实现这一目标?

最佳答案

这是一个指向 demo spreadsheet and script 的链接.只需复制电子表格并测试代码即可。

通过突出显示电子表格中的 1 行或多行数据并运行 emailFeedback 来测试脚本来自脚本编辑器的功能。或者,选择 1 行或多行后,您可以从电子表格的“自定义工具”菜单中执行脚本。

我把它分成两个函数。第一个函数emailFeedback获取您在电子表格中选择的行并遍历每一行数据并调用第二个函数 sendEmail对于每一行,只要有反馈和文本(可以添加更多验证和错误处理)。

function emailFeedback() {
var ss = SpreadsheetApp.getActiveSheet();
var range = ss.getActiveRange();

var numRows = range.getNumRows();
var values = range.getValues();

for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
var to = row[1];
var story = row[2];
var feedback = row[3];

if (feedback.length > 0 && story.length > 0) {
// make sure valid story and feedback before sending
sendEmail(to, story, feedback);
}
}
};

GmailApp用于发送上面评论中 igor 建议的 html 格式的电子邮件。 plainTxtBody可以省略,但如果收件人无法解析 html 格式的电子邮件,则可能有用。 storyHTMLfeedbackHTML<p> 替换用户表单提交中的换行符标签,以便您在电子邮件中获得适当的间距。

function sendEmail(to, story, feedback) {
var sendToName = to.split('@')[0];

// email content
var emailSubject = "Feedback on your story submission";

// plain text body - just in case receiver can't parse html formatted email
var plainTxtBody = "Hi " + sendToName + ",\n" +
"You wrote:\n" + story + "\n" +
"Our feedback:\n" + feedback;

// html formatting isn't necessary, but nice for reading :)
var htmlBody = '<html><body>';
var htmlFooter = '</body></html>';

// replacing newline characters with paragraph breaks to make it more readable
var storyHTML = story.replace(/\n/g, "</p><p>");
var feedbackHTML = feedback.replace(/\n/g, "</p><p>");

var emailMessage = "<p>Hi " + sendToName + ",</p>" +
"<p><strong>You wrote:</strong><p>" +
"<p>" + storyHTML + "</p>" +
"<hr>" +
"<p><strong>Here is our feedback:</strong></p>" +
"<p>" + feedbackHTML + "</p>";


htmlBody += emailMessage + htmlFooter;

// GmailApp must have default recipient, subject, body attributes followed by jsobject options {}
// Differs from MailApp syntax but has more options -- see documentation on GmailApp
GmailApp.sendEmail(to, emailSubject, plainTxtBody, {
htmlBody: htmlBody,
});
};

希望这对您有所帮助:)

关于javascript - 来自电子表格 Javascript 的电子邮件 : How to make message equal more than one column?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24433051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com