【问题标题】:How can I fix emails googlesheets如何修复电子邮件谷歌表格
【发布时间】:2021-04-30 04:30:28
【问题描述】:

帮助。我正在尝试使用此代码发送一封自动电子邮件。

function checkIn() {
  var aemail=SpreadsheetApp.getActiveSpreadsheet();   
  var tracker= aemail.getSheetByName("Tracker");
  var template= aemail.getSheetByName("Templates");

  var message=template.getRange('B3').getValue();
  var signature= template.getRange('C3').getValue();

  for (var i=2; i<=2;i++) {    
    var sname =tracker.getRange('A'+i).getValue();
    var subject = tracker.getRange('B'+i).getValue();
    var eaddress = tracker.getRange('C'+i).getValue();
    var finalmsg = ""
    
    finalmsg="Hello"+""+sname+","+"\n"+"\n"+message+"\n"+signature;

    MailApp.sendEmail(eaddress,subject,finalmsg);
  }
}

电子邮件已发送,但文本向右对齐,并且未扩展到电子邮件空间。我怎样才能解决这个问题?我修过一次,但不记得怎么修了。我知道这与代码无关。

【问题讨论】:

  • 文本对齐看起来是留给我的 - 您可以通过从消息中删除换行符来修复它
  • 我发现了另一种形式,它谈论 gmailapp 由于纯文本而将电子邮件分成几行。他们建议使用 MailApp.send email(eaddress,subject,{htmlBody:finalmsg});但是当我这样做时,它会返回 {object,object}
  • @BlessingsBestowed 抱歉,我之前的回答有误,我已对其进行了编辑以向您展示如何使用 htmlBody。如果您仍然遇到问题,请不要犹豫。

标签: javascript email google-sheets format


【解决方案1】:

看起来它将取决于B3 范围内的数据。它可能包含换行符 - 如果不是,那么最好共享一个样本表以便对其进行测试。

您也可以尝试添加此代码以用空格替换换行符

改变

 var message=template.getRange('B3').getValue();

var message=template.getRange('B3').getValue().replaceAll("\n", " ")

如果您想更好地控制外观,您还可以尝试使用带有sendEmail 方法的HTML 正文。像这样使用它:

MailApp.sendEmail('mike@example.com', 'example', 'body without html', {
    htmlBody:"<h1>Body with HTML</h1>"
});

由于并非所有客户端都呈现 HTML,因此包含正常正文,因此如果特定邮件客户端不呈现 HTML,则它将使用纯文本版本。

也就是说,我确实认为您的问题与换行符 \n 进入您的消息有关。

参考

编辑

我错了。

经过一些测试,如果您的电子邮件完全是纯文本,那么 Gmail 会自动插入换行符。

您将需要使用上面提到的optionshtmlBody 参数。

你可以这样使用它:

function sampleEmail() {
  
  var message="Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks Long Text without line breaks "


  MailApp.sendEmail("[YOUR EMAIL]","test", message,{htmlBody:"<p>"+ message +"</p>"});
}

参数如下:

  • 收件人的电子邮件
  • 主题
  • 纯文本消息(作为备用,以防客户的电子邮件不支持 HTML)
  • options 参数具有一个属性 htmlBody,其中消息仅使用&lt;p&gt; HTML 标记进行包装。

此文本现在将适应并填充支持 HTML 的电子邮件客户端(如 Gmail)中的屏幕宽度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    相关资源
    最近更新 更多