#google-apps-script #gmail #email-attachments
#google-приложения-скрипт #gmail #электронная почта-вложения
Вопрос:
Я использую следующий скрипт для проверки моего почтового ящика Gmail на наличие электронных писем, которые я пометил (вручную или с помощью правил) как счет на покупку, и автоматической пересылки их в мое бухгалтерское программное обеспечение.
Однако вложения в формате .pdf (счет-фактура) пересылаются неправильно: при просмотре переадресованного электронного письма вложение не является настоящим файлом .pdf (см. Рисунок ниже сценария), и мое бухгалтерское программное обеспечение не может получить доступ к файлу .pdf.
Есть какие-либо указания относительно того, что происходит не так?
function FwdInvoices() {
var getLabel = GmailApp.getUserLabelByName('Purchase Invoice');
var setLabel = GmailApp.getUserLabelByName('Purchase Invoice/Processed');
var recipient = 'xxxxxxx@mail.autoentry.com';
var userId = "me";
var label = "Purchase Invoice/Processed";
var labelId = Gmail.Users.Labels.list(userId).labels.filter(function(e){return e.name == label})[0].id;
var threads = getLabel.getThreads();
for (var i = 0; i < threads.length; i ) {
var thread = threads[i];
var message = thread.getMessages()[0];
var messageId = message.getId()
message.forward(recipient);
thread.removeLabel(getLabel);
//thread.addLabel(setLabel) - not using this - see below why
//add label to message only (not thread - if label applied to whole thread the sent message will have label applied and show up in 'Processed' label view.
Gmail.Users.Messages.modify({"addLabelIds": [labelId]}, userId, messageId)
//thread.moveToArchive()
}
}
Вот как выглядит вложение, почти как если бы это был файл, связанный через диск, а не сам файл. Если я нажму на него, мне будет предложено выбрать cloud .pdf viewer, а не обычный немедленный просмотр .pdf.
Ответ №1:
При пересылке вложений с помощью GmailApp вложения не включаются автоматически
Однако вы можете легко включить их вручную с помощью дополнительных параметров.
Пример:
var message = thread.getMessages()[0];
var messageId = message.getId();
var attachments = message.getAttachments();
message.forward(recipient, {attachments:attachments});