90 lines
3.1 KiB
JavaScript
90 lines
3.1 KiB
JavaScript
// The contents of this file are subject to the Mozilla Public License Version 1.1
|
|
// (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.mozilla.org/MPL/>.
|
|
//
|
|
// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
|
// WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
|
// language governing rights and limitations under the License.
|
|
//
|
|
// The Original Code is the Venice Web Communities System - Generic Mail Gateway.
|
|
//
|
|
// The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
|
// for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
|
// Copyright (C) 2002 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
|
//
|
|
// Contributor(s):
|
|
|
|
importPackage(Packages.org.apache.xmlrpc);
|
|
importPackage(Packages.com.silverwrist.mailgate);
|
|
|
|
// get the message to be posted
|
|
message = bsf.lookupBean("message");
|
|
|
|
// create an XML-RPC connection to a Venice server
|
|
rpc = lib.connectXMLRPC(lib.getConfigParam("url"),false);
|
|
|
|
// create a session
|
|
parms = lib.createVector();
|
|
sessionid = lib.castString(rpc.execute("venice:session.create",parms));
|
|
|
|
// log into the session
|
|
parms.add(sessionid);
|
|
parms.add(lib.getConfigParam("username"));
|
|
parms.add(lib.getConfigParam("password"));
|
|
rpc.execute("venice:session.login",parms);
|
|
|
|
// create the message text
|
|
text = "[From: " + message.sender + "]\r\n\r\n" + message.text;
|
|
|
|
// post the initial message!
|
|
parms.clear();
|
|
parms.add(sessionid);
|
|
parms.add(lib.getConfigParam("community"));
|
|
parms.add(lib.getConfigParam("conference"));
|
|
my_topic = lib.castInteger(lib.getConfigParam("topic"));
|
|
parms.add(my_topic);
|
|
parms.add(message.subject);
|
|
parms.add(lib.castString(text));
|
|
parms.add("email");
|
|
ndx = lib.castInteger(rpc.execute("venice:conferencing.topic.postMessage",parms));
|
|
|
|
if (message.hasAttachments())
|
|
{ // there are attachments - attach them to this message, and to other messages if necessary
|
|
for (i=0; i<message.attachmentCount; i++)
|
|
{ // post each attachment in turn
|
|
if (i>0)
|
|
{ // post a new message to attach the next attachment to
|
|
new_text = "[From: " + message.sender + "]\r\n\r\n[Attachments continued]";
|
|
parms.clear();
|
|
parms.add(sessionid);
|
|
parms.add(lib.getConfigParam("community"));
|
|
parms.add(lib.getConfigParam("conference"));
|
|
parms.add(my_topic);
|
|
parms.add(message.subject);
|
|
parms.add(lib.castString(new_text));
|
|
parms.add("email");
|
|
ndx = lib.castInteger(rpc.execute("venice:conferencing.topic.postMessage",parms));
|
|
|
|
} // end if
|
|
|
|
// get the attachment and add it
|
|
att = message.getAttachment(i);
|
|
parms.clear();
|
|
parms.add(sessionid);
|
|
parms.add(lib.getConfigParam("community"));
|
|
parms.add(lib.getConfigParam("conference"));
|
|
parms.add(my_topic);
|
|
parms.add(ndx);
|
|
parms.add(att.type);
|
|
parms.add(att.fileName);
|
|
parms.add(att.data);
|
|
rpc.execute("venice:conferencing.message.attach",parms);
|
|
|
|
} // end for
|
|
|
|
} // end if
|
|
|
|
// destroy the session to finish the operation
|
|
parms.clear();
|
|
parms.add(sessionid);
|
|
rpc.execute("venice:session.destroy",parms); |