나는 second link을보고 호기심을 보였습니다 ... 당신이하고 싶은 일이 직업의 일부분을 다룰 수 있다면 달성하기가 쉽습니다. 수동, 즉 추가하려는 모든 첨부 파일의 ID 가져 오기
이러한 파일을 가져 와서 스크립트의 모든 전자 메일에 할당 할 수는 있지만 모든 작업이 복잡해집니다.
ID를 가져올 준비가되었다고 가정하면 "병합 할 데이터"시트 (열 F)에 다섯 번째 열을 추가하고 다음과 같이 스크립트를 변경해야합니다 (70 행에서 시작하는 관련 부분 만 복제합니다 :
function runMailMerge() {
//set up the status column, so it's blank, and pink
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data to be merged"); //used later in updating the status box
var totalRows=sheet.getMaxRows();
var range=sheet.getRange(2,1,totalRows,1);
var failed=false;
range.clearContent();
range.setBackgroundRGB(230,153,153);
if (totalRows>25) Browser.msgBox("It will take some time to send all these emails. There are more than 25 rows, so we're using the slower mode, to send as many as possible. See the Instructions and Settings sheet for details.");
ScriptProperties.setProperty('newLine',"<br><br>");
settingsDataRange=setProperties();
var mergeDataValues=getMergeDataValues();
var arrayOfTags=mergeDataValues[0]; //gets the first row
//run through the remaining rows
for (i=1; i<mergeDataValues.length; i++) { //loops through the rows in the merge sheet. Misses 0, which is column headings
try {
var thisEmailAddress=mergeDataValues[i][2];
var thisEmailText=ScriptProperties.getProperty('genericEmailText');
var thisEmailSubject=ScriptProperties.getProperty('subject');
var arrayOfValues=mergeDataValues[i];
for (j=1; j<arrayOfTags.length; j++) { //loops through the columns
var replaceData=arrayOfValues[j];
var tag=ScriptProperties.getProperty('before')+arrayOfTags[j]+ScriptProperties.getProperty('after');
while (thisEmailText.search(tag)>=0) { //loop through, to ensure we replace every occurence of "tag"
thisEmailText=thisEmailText.replace(tag,arrayOfValues[j]);
thisEmailSubject=thisEmailSubject.replace(tag,arrayOfValues[j]);
}
}
thisEmailText=thisEmailText.replace(/\n/g,"<br>"); //ensure any linebreaks from Google doc are carried to the HTML version. The /g means all occurences.
//create a plain text version, by swapping <br> for \n, and stripping any other HTML tags
var plainEmailText=thisEmailText.replace(/<br>/g,"\n");
plainEmailText=stripHTML(plainEmailText);
var attachmentFiles = [];
var ID = sheet.getRange(i+1,5).getValue();
Logger.log(ID);
var pdf = DocsList.getFileById(ID);
attachmentFiles.push(pdf);
var advancedArgs = {htmlBody:thisEmailText, name:ScriptProperties.getProperty('senderName'), replyTo:ScriptProperties.getProperty('replyTo'), attachments:attachmentFiles };
MailApp.sendEmail(thisEmailAddress,thisEmailSubject, plainEmailText, advancedArgs);
var range=sheet.getRange(i+1,1);
...
)
안녕하세요 여러분의 도움을 주셔서 감사합니다. attacment 열을 추가하고 스크립트를 편집했지만 스크립트가 실행 된 후 mailMerge 시트의 상태 표시 줄에 Failed가 표시되고 메일이 전송되지 않았습니다. 나는 다른 ID를 시도했다 – Dengeln
너도 너무 5-6 다른 첨부 파일을 보낼 수 있다면 좋을까 같은 이메일 주소. – Dengeln