Все работает, но строка темы пуста … почему? Чего мне не хватает?

#google-apps-script

#google-apps-script

Вопрос:

Я думаю, что это должно быть очень легко увидеть, но я этого не вижу! Этот скрипт отправляет лист в формате PDF. Он работает хорошо, за исключением того, что строка темы пуста. Я попытался заменить фактическую строку для переменной в классе GmailApp внизу, но строка темы по-прежнему пуста, когда приходит электронное письмо. Помогите! Спасибо. PS — обратите внимание, что я удалил адрес электронной почты для конфиденциальности.

 function emailPDF(email, subject, body, sheetName) {

    var email = "...";
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName('Client');
    var cost = sheet.getSheetValues(1,1,1,1).toLocaleString();
    var subject = ss.getName();
    var body = "Hi Serenity, the material cost is $"   cost  " Thank you!";

    // Base URL
    var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", ss.getId());

    /* Specify PDF export parameters
    From: https://code.google.com/p/google-apps-script-issues/issues/detail?id=3579
     */

    var url_ext = 'exportFormat=pdfamp;format=pdf' // export as pdf / csv / xls / xlsx
           'amp;size=letter' // paper size legal / letter / A4
           'amp;portrait=true' // orientation, false for landscape
           'amp;fitw=trueamp;source=labnol' // fit to page width, false for actual size
           'amp;sheetnames=falseamp;printtitle=false' // hide optional headers and footers
           'amp;pagenumbers=falseamp;gridlines=false' // hide page numbers and gridlines
           'amp;fzr=false' // do not repeat row headers (frozen rows) on each page
           'amp;gid='; // the sheet's Id

    var token = ScriptApp.getOAuthToken();

    var response = UrlFetchApp.fetch(url   url_ext   sheet.getSheetId(), {
            headers : {
                'Authorization' : 'Bearer '   token
            }
        }).getBlob().setName(ss.getName()   ".pdf");

    // save PDF to drive 
    //  var newFile = DriveApp.createFile(response).setName(sheet.getName()   ".pdf")

  
    if (MailApp.getRemainingDailyQuota() > 0)
        GmailApp.sendEmail(email, subject, body, {
            htmlBody : body,
            attachments : [response]
        });
}
 

Комментарии:

1. Итак, вы предоставляете subject ответ, используя этот метод , и отправленное электронное письмо не имеет темы? Я не могу воспроизвести это. Убедитесь, что вы ничего не упустили (вы просматриваете правильное электронное письмо? Вы уверены subject , что это не пустая строка? и т.д.).

Ответ №1:

Я понял это … это была просто мелкая ошибка. В электронной таблице много сценариев. Я взял этот скрипт месяц назад, начал с нуля и случайно дал ему то же имя функции. Оба скрипта вызывались одновременно, что привело к такому результату. Теперь все работает. Я ценю ваш комментарий Lamblichus… Я был настолько сосредоточен на неправильном сценарии, что не понимал, что происходит. Затем я понял, что это не может быть неправильным. Вы заставили меня думать правильно. Лучшие.