2014-01-08 12 views
0

이 기능을 웹 어딘가에서 복사했습니다. 내 목표는 Google 스프레드 시트에 내 Gmail 계정에 특별히 라벨이 지정된 이메일 본문을 가져 오는 것입니다. 나는 코딩에 관해서는 완전히 부적절하지는 않지만, 나는이 물건에 익숙하지 않다.Google 스프레드 시트 스크립트 문제

관련이있을 수있는 몇 가지 세부 정보 : 가져 오기를 시도하는 이러한 전자 메일 각각은 대화가 아니며 수신 된 단일 전자 메일이며 응답이없고 이전 메시지가 없습니다. 각 스프레드 시트의 단일 셀에 배치 된 각 전자 메일 본문을 원합니다.

그대로, 스프레드 시트에는 제목 만 배치됩니다. 시체를 가져 오려면 어떻게해야합니까? 배열에 배치 된 것처럼 느껴지지만 setValue를 반복하면 건너 뜁니다.

많은 사랑, 여러분!

코드 :

function getMessagesWithLabel() { 
var destArray = new Array(); 
    var threads = GmailApp.getUserLabelByName('abc').getThreads(1,10); 

    for(var n in threads){ 
     var msg = threads[n].getMessages(); 
     var destArrayRow = new Array(); 
     destArrayRow.push('thread has '+threads[n].getMessageCount()+' messages'); 
      for(var m in msg){ 
        destArrayRow.push(msg[m].getSubject()); 
      } 
    destArray.push(destArrayRow);   
     } 
Logger.log(destArray); 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sh = ss.getActiveSheet(); 
if(ss.getLastRow()==0){sh.getRange(1,1).setValue('getMessagesWithLabel() RESULTS')}; 
sh.getRange(ss.getLastRow()+1,1,destArray.length,destArray[0].length).setValues(destArray) 
} 
+0

질문을 편집하여 실제 문제가 무엇인지 명확히하거나 닫고 실제 문제가있는 새로운 문제를 만들 것을 제안합니다. –

+0

완료. 바라기를 이것은 내가 대답을 찾는데 도움이 될 것입니다. – Grouchy

답변

0

당신은 어디서든 스크립트에 .getBody()를 사용하지 않는? 이 같은 경우에는 내가 별도의 값으로 제목과 본문을 가진 개체로 각 메시지를 저장하는 것 :

console.log(contentArray[0].subject); 
console.log(contentArray[0].body); 
:

var msg = threads[n].getMessages(); 
var contentArray = []; 

for(var i = 0; i < msg.length; i++){ 

    var obj = { 
    subject: msg[i].getSubject(), 
    body: msg[i].getBody()  
    }; 

    contentArray.push(obj); 

} 

이 값은 다음 표기법을 사용하여 통해 반복 할 수있다

관련 문제