【问题标题】:Line break in a message消息中的换行符
【发布时间】:2012-05-23 13:21:49
【问题描述】:

使用 Google Apps 脚本,如何在变量中换行以发送邮件?

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    如果您不发送 HTML 格式的消息,请使用“\n”。我个人鄙视 HTML 格式的电子邮件。

    【讨论】:

    • 同样重要的是要注意许多垃圾邮件过滤器不会喜欢 html
    • 嗨,我在我的电子邮件中使用了这个字符串,但我没有在电子邮件中收到新行。你知道可能是什么问题吗?
    【解决方案2】:

    您应该在发送电子邮件的 HTML 部分时使用<br> 标签。

    以下是我如何撰写相同电子邮件正文的示例,但 HTML 和纯文本的格式不同。 (不是最好的代码,但希望它能说明这一点)

    function onFormSubmit(e) {
      var subject = "Subject";
    
      // Collect user data
      var name = e.values[0];
      var email = e.values[1];   // Where user enters his/her email address
    
      // Generate content - Replace this with what you're composing
      var content = [];
      content.push("Hi " + name);
      content.push("Thanks for submitting the survey!___LINE_BREAK___");
      content.push("Survey Team");
    
      // Combine content into a single string
      var preFormatContent = content.join('___LINE_BREAK___');
    
      // Replace text with \n for plain text
      var plainTextContent = preFormatContent.replace('___LINE_BREAK___', '\n');
      // Replace text with <br /> for HTML
      var htmlContent = preFormatContent.replace('___LINE_BREAK___', '<br />');
    
      MailApp.sendEmail(email , 
                        subject, 
                        plainTextContent ,                    
                        { 
                          name: "Survey Team", 
                          html: htmlContent 
                        });  
    }
    

    【讨论】:

    • 替换只搜索第一个实例,虽然有点乱我的解决方案是 preFormatContent.split('LINE_BREAK').join(' \n');
    • @Hovo,谢谢,有时评论满足要求。
    • @DashK 感谢您提供这个简洁的解决方案。示例中有一个小错误。上面的例子只是替换了第一个___LINE_BREAK___。因此,为了完全替换,只需添加全局替换选项,即 var plainTextContent = preFormatContent.replace(/___LINE_BREAK___/g, '\n');var htmlContent = preFormatContent.replace(/___LINE_BREAK___/g, '&lt;br /&gt;'); @Hovo 您可能需要注意这一点,而不是拆分和加入。
    【解决方案3】:

    msgBox 中的换行符:

    Browser.msgBox('line 1 \\n line 2');
    

    请注意,您需要使用额外的反斜杠来转义“\n”。

    【讨论】:

      【解决方案4】:

      我通常在邮件中使用表格,但我认为 &lt;br /&gt; 应该可以工作

      【讨论】:



      • 取决于预期的行为。
      【解决方案5】:

      对于 HTML,&lt;br&gt; 应该可以工作。 对于 sheetApp 等其他谷歌应用程序中的 javascript/appscript,请使用模板文字,因为 MailApp 不响应 \n。 (即)键入两个反引号之间的内容并使用“输入”作为换行符,如下所示。无需使用单引号或双引号

      const recipient = 'abc@xyz.com,cde@xyz.com'
      const sub = 'some subject'
      const line1 = 'some line1 content'// say 'Name'
      const line2 = 'some line2 content'// say 'Contact Number'
      const line3 = 'some line3 content'//say 'EMail Id'
      const body = `Name: ${line1}
                    Contact Number: ${line2}
                    EMail Id: ${line3}`
      MailApp.sendEmail(recipient,sub,body)
      
      
      // There was a mistake with the original answer; I've added "$" for making the code above work.
        
      
          
      

      【讨论】:

      • 为什么要包含 line1、line2、line3 常量?这个问题与他们无关。你为什么提到不正确的“/n”序列?你应该知道 "\n" 并且它有效!
      • '\n' 仅。已编辑。对于 MailApp,即使 '\n' 也不起作用。使用 GmailApp,它可以工作。使用 line1, line2, line3 作为 const 来展示如何使用模板文字。通过提及,人们可以理解如何在单个示例中在模板文字中使用 const。使用反引号,您无需添加 '\n' 或 '
        ',只需输入 'enter' 即可输入下一行
      【解决方案6】:

      您可以使用\r 为 GmailApp 换行 \\n 更改 msgBox 的行。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-24
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多