Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Google apps script 我们如何使用谷歌应用程序脚本格式化电子邮件_Google Apps Script - Fatal编程技术网

Google apps script 我们如何使用谷歌应用程序脚本格式化电子邮件

Google apps script 我们如何使用谷歌应用程序脚本格式化电子邮件,google-apps-script,Google Apps Script,我写了一个小代码,从电子表格中收集“文本”、“电子邮件”和“主题”,并将gmail发送给收件人。Google脚本工作正常,但是自动gmail的宽度是固定的。所以当“文本”的长度改变时,gmail的宽度不会改变,这会导致文本位置的改变,这看起来有点奇怪 我的代码示例:- function temp2() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var dataSheet = ss.getSheetByName('Sheet1');

我写了一个小代码,从电子表格中收集“文本”、“电子邮件”和“主题”,并将gmail发送给收件人。Google脚本工作正常,但是自动gmail的宽度是固定的。所以当“文本”的长度改变时,gmail的宽度不会改变,这会导致文本位置的改变,这看起来有点奇怪

我的代码示例:-

function temp2() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet = ss.getSheetByName('Sheet1');
  var templateSheet = ss.getSheetByName('Sheet2');
  var emailTemplate2 = templateSheet.getRange("G1").getValue();
  var rec = templateSheet.getRange("C1").getValue();
  var sub = templateSheet.getRange("D1").getValue();
//  Logger.log(rec);
  MailApp.sendEmail(rec, sub, emailTemplate2);
}
我截短的电子邮件的第一张图片:-

我截短的电子邮件的第二个图像:-

在这封邮件中,“五月/十二月”、“171/26131”和“四月/十一月”是动态词。因此,我的第二行邮件(如图所示)有时以“follow”结尾,有时以“closed”结尾(取决于这三个动态条目的长度)

理想情况下,在我的gmail中,宽度应该是动态的,并且应该在月份名称后以“Period(.”结尾,在本例中是四月/十一月。 我想检查一下,我们在GAS中有没有子选项,通过它我们可以使‘gmail动态宽度’?我查看了文档中的
MailApp.sendmail
选项,但找不到更多详细信息

这方面的任何建议都将非常有用

问候,

Alok

您可以使用“sendmail(recipient,subject,body,options)”方法,body参数为空(“”),并使用htmlBody键(将使用该键而不是body值)添加选项Json

在htmlBody值(字符串)中,可以根据需要排列文本。在您的例子中,您从一个工作表中获取值,因此您可以直接放置所有html代码,并将其与将成为电子邮件正文的工作表值连接起来

以下是一个工作示例:

function temp2() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet = ss.getSheetByName('Sheet1');
  var templateSheet = ss.getSheetByName('Sheet2');
  var emailTemplate2 = templateSheet.getRange("G1").getValue();
  var rec = templateSheet.getRange("C1").getValue();
  var sub = templateSheet.getRange("D1").getValue();
  //  Logger.log(rec);
  MailApp.sendEmail(rec, sub, "", {
    htmlBody: '<html lang="en"><head><meta charset="utf-8"></head><body><div style="width:1864px;">' + emailTemplate2  + '</div></body></html>'
  });
}
函数temp2(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var dataSheet=ss.getSheetByName('Sheet1');
var templateSheet=ss.getSheetByName('Sheet2');
var emailTemplate2=templateSheet.getRange(“G1”).getValue();
var rec=templateSheet.getRange(“C1”).getValue();
var sub=templateSheet.getRange(“D1”).getValue();
//Logger.log(rec);
MailApp.sendEmail(记录,子“{
htmlBody:“+emailTemplate2+”
});
}
在这里,我将主体的所有内容放在一个宽度属性设置为1864px的
元素中,您可以调整它,因为您需要将所有主体放在一行中

其他选项可以在工作表单元格内使用html代码,并使用

等,根据需要格式化其中的文本


进一步阅读:

通过使用htmlBody选项,您可以对电子邮件内容进行更多的控制。