-
Notifications
You must be signed in to change notification settings - Fork 0
/
send.js
56 lines (50 loc) · 1.87 KB
/
send.js
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
/**
*
* Copyright (c) 2010-2014 WoT.IO inc http://wot.io
* Copyright (c) 2017 InterDigital, Inc. All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var gapi = require('googleapis'),
gmail = gapi.gmail({ version : 'v1' });
function Send() {}
Send.prototype = {};
Send.prototype.invoke = function(imports, channel, sysImports, contentParts, next) {
var self = this,
auth = self.pod.getOAuthClient(sysImports),
rawBody =
'From:' + imports.user_id + '\r\n'
+ (imports.subject ? ('Subject:' + imports.subject + '\r\n') : '')
+ (imports.reply_to ? ('Reply-To:' + imports.reply_to + '\r\n') : '')
+ 'To:' + imports.rcpt_to + '\r\n'
+ "Content-Type: multipart/alternative; boundary=\"bipio_content_boundary\"\r\n\r\n"
+ "--bipio_content_boundary\r\n"
+ "Content-Type: text/html; charset=UTF-8\r\n\r\n"
+ imports.body.replace(/\n/g, '<br/>'),
params = {
auth : auth,
userId: 'me',
resource : {
// google api uses url safe encoding (RFC 4648)
raw : new Buffer(rawBody).toString('base64')
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '')
}
};
gmail.users.messages.send(params, function(err, body, res) {
next(err, body);
});
}
// -----------------------------------------------------------------------------
module.exports = Send;