2013-08-22 4 views
0

안녕하세요 저는 this Google product forums page에서이 질문을 발견했으며 같은 질문을 던졌습니다. 그것을 알아 내려고 노력했지만 그것을 작동시키지 못한다면, 누구나 아이디어가 있습니까? 나는 또한메일 각 수신자마다 다른 첨부 파일로 병합

http://veetrag.net/2011/01/25/mail-merge-in-gmail-with-attachment-support/에서 같은 편지 병합을 발견 "안녕하십니까, 내가 편지 병합을 수행하는이 사이트 http://www.it4smallbusiness.co.uk/web-applications/google-mailmerge에있는 스프레드 시트를 사용하고 있습니다 . 그것은 내가에 다른 첨부 파일을 보낼 수 있도록 원하는 것을 제외하고 잘 작동합니다 각받는 사람. 예를 들어

은의 경우 시트 나 같은 행에있는 이메일 주소로 첨부 ID와 동료 각 첨부 ID를 보유하고 열을 추가 할 수 있습니다 "데이터 병합하는 방법"을 참조하십시오.

말 I 50 개의 PDF 첨부 파일이 있습니다. 모든 파일을 Google 문서 도구에 업로드하면 각자 ID가 생깁니다. 사용하려는 ID입니다.

스크립트를 편집하려고 시도했지만이를 이해하지 못했습니다. 어떤 아이디어? 고마워요! "

답변

1

나는 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); 
     ... 
)

enter image description here

+0

안녕하세요 여러분의 도움을 주셔서 감사합니다. attacment 열을 추가하고 스크립트를 편집했지만 스크립트가 실행 된 후 mailMerge 시트의 상태 표시 줄에 Failed가 표시되고 메일이 전송되지 않았습니다. 나는 다른 ID를 시도했다 – Dengeln

+0

너도 너무 5-6 다른 첨부 파일을 보낼 수 있다면 좋을까 같은 이메일 주소. – Dengeln

관련 문제