summaryrefslogtreecommitdiffstats
path: root/scripting/examples/java/Newsgroup/Sender.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--scripting/examples/java/Newsgroup/Sender.java141
1 files changed, 141 insertions, 0 deletions
diff --git a/scripting/examples/java/Newsgroup/Sender.java b/scripting/examples/java/Newsgroup/Sender.java
new file mode 100644
index 000000000..00b3db87b
--- /dev/null
+++ b/scripting/examples/java/Newsgroup/Sender.java
@@ -0,0 +1,141 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you 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 .
+ */
+
+package org.libreoffice.example.java_scripts;
+
+import javax.mail.*;
+import javax.mail.internet.*;
+import com.msoft.mail.provider.nntp.NNTPTransport;
+import java.util.Properties;
+import java.io.*;
+import javax.activation.*;
+
+
+public class Sender {
+ // Constructor params:
+ private StatusWindow status = null;
+ private OfficeAttachment attachments = null;
+ private String replyto = "";
+ private String subject = "";
+ private String comment = "";
+ private String hostname = "";
+ private String newsgroup = "";
+ private String statusLine = "";
+
+
+
+ public Sender(StatusWindow sw, OfficeAttachment attach, String reply,
+ String sub, String com, String host, String group) {
+ status = sw;
+ attachments = attach;
+ replyto = reply;
+ subject = sub;
+ comment = com;
+ hostname = host;
+ newsgroup = group;
+ }
+
+
+
+ public boolean sendMail() {
+ int statusPos = 5;
+
+ try {
+ attachments.createTempDocs();
+ // Property for any information
+ Properties props = new Properties();
+
+ // Create unique session (null is unused authenticator info)
+ statusLine = "Creating unique session";
+ status.setStatus(statusPos, statusLine); // 5
+ Session session = Session.getInstance(props, null);
+
+ // Create message
+ statusPos++; // 6
+ statusLine = "Creating message";
+ status.setStatus(statusPos, statusLine);
+ MimeMessage message = new MimeMessage(session);
+ message.setFrom(new InternetAddress(replyto));
+ message.setSubject(subject);
+ message.setText(comment);
+ message.addHeader("Newsgroups", newsgroup);
+
+ // Buildup bodypart with text and attachments
+ Multipart multipart = new MimeMultipart();
+
+ BodyPart messageBodyPart = new MimeBodyPart();
+ messageBodyPart.setText(comment);
+ multipart.addBodyPart(messageBodyPart);
+
+ statusPos++; // 7
+ statusLine = "Adding attachment(s)";
+ status.setStatus(statusPos, statusLine);
+ File attachs[] = attachments.getAttachments();
+
+ for (int i = 0; i < attachs.length; i++) {
+ messageBodyPart = new MimeBodyPart();
+ DataSource filesource = new FileDataSource(attachs[i]);
+ messageBodyPart.setDataHandler(new DataHandler(filesource));
+ messageBodyPart.setFileName(attachs[i].getName());
+ multipart.addBodyPart(messageBodyPart);
+ }
+
+ // Add multipart to mail
+ message.setContent(multipart);
+
+ // Create and send NNTP transport
+ statusPos += 2; // 9
+ statusLine = "Creating NNTP transport";
+ status.setStatus(statusPos, statusLine);
+ Transport transport = new NNTPTransport(session,
+ new URLName("news:" + newsgroup));
+
+ // Null parameters are for user name and password
+ statusPos++; // 10
+ statusLine = "Connecting to mail server";
+ status.setStatus(statusPos, statusLine);
+ transport.connect(hostname, null, null);
+
+ statusPos++; // 11
+ statusLine = "Sending message";
+ status.setStatus(statusPos, statusLine);
+ transport.sendMessage(message, message.getAllRecipients());
+
+ statusPos++; // 12
+ statusLine = "Closing transport";
+ status.setStatus(statusPos, statusLine);
+ transport.close();
+
+ // Clean up when finished
+ attachments.removeTempDocs();
+
+ return true;
+ } catch (MessagingException me) {
+ if (statusPos == 10) {
+ statusLine = "Error connecting (User authentication?)";
+ }
+
+ status.setStatus(statusPos, statusLine);
+ System.out.println("Error sending message: ");
+ me.printStackTrace();
+ return false;
+ }
+
+ }
+
+}