2014-01-10 88 views
0

通過Google電子表格我喜歡發送附件。該附件是Google文檔。通過Google腳本將附件作爲Word文檔發送

我可以將它發送爲PDF file.getAs('application/PDF') - 但是我需要它作爲一個Word文檔(或者在Word中打開的東西)。

可以通過Word附件手動發送電子郵件,但是此解決方案需要自動執行此操作。

我試過了:application/vnd.openxmlformats-officedocument.wordprocessingml.document(http://en.wikipedia.org/wiki/Internet_media_type)但是不起作用。

親切的問候

斯特凡

回答

2

谷歌Apps腳本不能出口任何東西比PDF原生,但該文件API並因此您可以使用網址提取與參數,以獲得你想要的(不改變這些參數,請求是匿名的並且可以保留)。

下面是代碼,它不需要除了網址提取必須經過授權過多的解釋(這個過程是不是一般的一個,你會得到第二次授權此腳本。)

function emailDocTestasDocx() { 
    var id = '1I9KIVTLieQbNnmz09zfOBSBNwZ9Tp7B0kfpysaf-ooY';// an example of Google doc 
    var url = 'https://docs.google.com/feeds/'; 
    var doc = UrlFetchApp.fetch(url+'download/documents/Export?exportFormat=doc&format=doc&id='+id, 
           googleOAuth_('docs',url)).getBlob(); 
    var me = Session.getEffectiveUser().getEmail(); 
    MailApp.sendEmail(me, 'test', 'see attachment', {attachments:[doc]}); 
} 

function googleOAuth_(name,scope) { 
    var oAuthConfig = UrlFetchApp.addOAuthService(name); 
    oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope); 
    oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken"); 
    oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken"); 
    oAuthConfig.setConsumerKey('anonymous'); 
    oAuthConfig.setConsumerSecret('anonymous'); 
    return {oAuthServiceName:name, oAuthUseToken:"always"}; 
} 
+0

Thanx Serge。它可以工作,但是我喜歡根據Google Spreadsheet中的電子郵件地址發送電子郵件。當我這樣做是行不通的(目標用戶沒有收到郵件)。任何想法? –

+0

我認爲出了什麼問題......它似乎很好地工作,謝謝。 –

+0

很高興聽到它,謝謝 –

相關問題