forked from krasnopv/Cryptocurrency-Portfolio
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmail.js
More file actions
79 lines (64 loc) · 2.58 KB
/
mail.js
File metadata and controls
79 lines (64 loc) · 2.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//https://developers.google.com/gmail/markup/
function convertSpreadsheetToPdf() {
var email = Session.getActiveUser().getEmail();
var sheetName = "Market"
var pdfName = "Market"
var spreadsheetId = null
var spreadsheet = spreadsheetId ? SpreadsheetApp.openById(spreadsheetId) : SpreadsheetApp.getActiveSpreadsheet();
spreadsheetId = spreadsheetId ? spreadsheetId : spreadsheet.getId()
var sheetId = sheetName ? spreadsheet.getSheetByName(sheetName).getSheetId() : null;
var pdfName = pdfName ? pdfName : spreadsheet.getName();
var parents = DriveApp.getFileById(spreadsheetId).getParents();
var folder = parents.hasNext() ? parents.next() : DriveApp.getRootFolder();
var url_base = spreadsheet.getUrl().replace(/edit$/,'');
var url_ext = 'export?exportFormat=pdf&format=pdf' //export as pdf
// Print either the entire Spreadsheet or the specified sheet if optSheetId is provided
+ (sheetId ? ('&gid=' + sheetId) : ('&id=' + spreadsheetId))
// following parameters are optional...
+ '&size=A4' // paper size
+ '&portrait=false' // orientation, false for landscape
+ '&fitw=true' // fit to width, false for actual size
+ '&sheetnames=false&printtitle=false&pagenumbers=false' //hide optional headers and footers
+ '&gridlines=false' // hide gridlines
+ '&fzr=false'; // do not repeat row headers (frozen rows) on each page
var options = {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(),
}
}
var response = UrlFetchApp.fetch(url_base + url_ext, options);
var blob = response.getBlob().setName(pdfName + '.pdf');
folder.createFile(blob);
// Send reservation email to user's address
var price = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Market").getRange("G5").getValue()
price=Math.round(price*100)/100
var d = new Date();
var date = d.toISOString();
Logger.log (date)
Logger.log (date.slice(0, -5))
var htmlBody = '<html><body>'+
'<script type="application/ld+json">'+
'{'+
' "@context": "http://schema.org",'+
' "@type": "Invoice",'+
' "paymentDue": "'+date.slice(0, -5)+'",'+
' "provider": {'+
' "@type": "Organization",'+
' "name": "Cryptos Currencies Portfolio"'+
' },'+
' "totalPaymentDue": {'+
' "@type": "PriceSpecification",'+
' "price": "€ '+price+'"'+
' }'+
'}'+
'</script>'+
'</body></html>'
var useraddress = Session.getActiveUser().getEmail();
var subject = 'Portfolio : '+price+' €'
MailApp.sendEmail({
to: useraddress,
subject: subject,
htmlBody: htmlBody,
attachments: blob
});
}