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

防止使用MailApp进行文本换行。发送电子邮件谷歌表单?谷歌脚本

沈巴英
2023-03-14

我有以下工作代码,可以根据一个单元格的内容发送电子邮件。此单元格包含用于创建电子邮件的其他单元格的值。

电子邮件发送给2个收件人,效果良好。但是,在收到电子邮件后,文本将在74个字符后包装。

样本表副本发布:https://docs.google.com/spreadsheets/d/1PDSHbrhxiJliTGNx2rlJRAJIrjITADVuGWqTuvpjrgw/edit?usp=sharing

如何防止包装?我想发送的电子邮件,因为它出现在'body'单元格:

=G2&char(10)&E9&char(10)&E10&char(10)&E11&char(10)&E12&char(10)&E13&char(10)&E14&char(10)&E15&char(10)&E16&char(10)&E17&char(10)&E18&char(10)&E19&char(10)&E20&char(10)&E21&char(10)&E22&char(10)&E23&char(10)&E24&char(10)&E25&char(10)&E26&char(10)&E27&char(10)&E28&char(10)&E29&char(10)&E30&char(10)&E31&char(10)

发送邮件功能:

var EMAIL_SENT = 'EMAIL_SENT';

function SendEmailACC() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("EmailACC");
  var startRow = 2; 
  var numRows = 2; 
  var dataRange = sheet.getRange(startRow, 1, numRows, 6); 
  var data = dataRange.getValues(); 
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[0]; // First column
    var message = row[1]; // Second column
    var subject = row[2]; 
    var emailSent = row[5]; 
    var EMAIL_SENT = "Email Processed";
    var EMAIL_FAIL = "Email Not Sent";
    if (emailSent !== EMAIL_SENT) { 

      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 5).setValue(EMAIL_SENT);
      SpreadsheetApp.flush();

    }
  }
  Utilities.sleep(3000);// pause in the loop
  DeleteStatus();
}

示例电子邮件的外观:


Good Morning,

The following claim may have had an incorrect or missing ACC number or was not submitted by the referrer at time of request.
The claim has since been amended or submitted for the release of $50. Updated details are as below.

Vendor ID: ABC123
Invoice number: ABCDE12345
Service Date: 11/10/2019
Patient: John Smith
Service Code(s): COD88
First supplied ACC Number: BTT123
Exam Type: Exam Abc

Amended or updated ACC Number: COD123

Please let me know if any further information is required.


电子邮件的实际输出方式:

Good Morning,

The following claim may have had an incorrect or missing ACC number or was 
not submitted by the referrer at time of request.
The claim has since been amended or submitted for the release of $50. 
Updated details are as below.

Vendor ID: G0A368
Invoice number: ABCDE12345
Service Date: 11/10/2019
Patient: John Smith
Service Code(s): COD88
First supplied ACC Number: BTT123
Exam Type: Exam Abc

Amended or updated ACC Number: COD123

Please let me know if any further information is required.

有什么建议吗

共有1个答案

诸彬郁
2023-03-14

这个答案怎么样?请把这看作是几个可能的答案之一。

在这个模式中,使用了类GmailApp。

MailApp.sendEmail(emailAddress, subject, message);
GmailApp.sendEmail(emailAddress, subject, message);

在此模式中,使用Gmail API。在这种情况下,请在高级Google服务中启用Gmail API。

MailApp.sendEmail(emailAddress, subject, message);
var raw = Utilities.base64EncodeWebSafe("Subject: " + subject + "\r\n" + "To: " + emailAddress + "\r\n" + "Content-Type: text/plain; charset=UTF-8\r\n\r\n" + message + "\r\n\r\n");
Gmail.Users.Messages.send({raw: raw}, "me");
  • 如果电子邮件中包含超过Unicode 6.0版本的字符,则需要使用Gmail API。请小心这个。参考号
  • 根据我的经验,我也有同样的问题。当时,这个问题可以通过使用GailApp类来解决。但不幸的是,我在官方文件中找不到对此的详细解释。我为此道歉。
  • MailApp。发送电子邮件(收件人、主题、正文)
  • GmailApp。发送电子邮件(收件人、主题、正文)
  • 高级谷歌服务
  • Gmail API
 类似资料:
  • 我已经建立了一个谷歌表单,我的回复被记录在一个电子表格中。理想情况下,我希望回复也通过电子邮件发送。

  • 我是谷歌脚本的新手,不知道是否有人能帮我。 我有一个共享的谷歌电子表格,基本上是用新的员工信息更新行。 我希望只有当插入这些新员工行时,特定列(比如F列)上的“ABC”字符串匹配时,才会触发电子邮件。基本上,电子邮件触发器会让我们的团队知道如何设置新的员工帐户。 有人能帮我吗?我不知道如何进行字符串匹配,也不知道如何让它专门发送给固定的电子邮件收件人。我已经安装了Python、gspread和gd

  • 我有一个谷歌脚本的问题。基本上,我的目标是让脚本检查客户的案例是否得到解决,然后向他们发送电子邮件,告知问题已经解决。我已经完成了发送电子邮件的逻辑,但每次我尝试将其应用到电子表格中时,都会出现错误:

  • 所以我想知道我是否可以访问我的签名从我的Gmail帐户和发送电子邮件连同它。是否可以使用Gmail API和应用程序脚本? 这是我目前得到的。

  • 在继续使用GoogleApps脚本构建Google电子表格的过程中,我已经完成了获取Bittrex和Poloniex余额的工作,但无法使用Cryptopia。 下面是我与Bittrex将JSON对象数组映射到字符串的斗争的链接 以下是官方API链接:https://www.cryptopia.co.nz/Forum/Thread/256 以下是一些例子: https://www.cryptopia

  • 我有一个电子表格,存储工作表1上的任务。当一个任务完成时,就会发送一封电子邮件。表2保存了发送到、抄送和回复的特定电子邮件地址。我可以循环浏览第2页并获得每一栏的电子邮件地址。我想能够得到这些电子邮件地址到我的选项发送电子邮件在MailApp。无法从工作表2的循环中获取电子邮件地址。请参阅下面的代码。任何帮助都将不胜感激。