summaryrefslogtreecommitdiff
path: root/scripting/examples/java/Newsgroup/Sender.java
diff options
context:
space:
mode:
Diffstat (limited to 'scripting/examples/java/Newsgroup/Sender.java')
-rw-r--r--scripting/examples/java/Newsgroup/Sender.java126
1 files changed, 126 insertions, 0 deletions
diff --git a/scripting/examples/java/Newsgroup/Sender.java b/scripting/examples/java/Newsgroup/Sender.java
new file mode 100644
index 000000000000..eb1da2868f0d
--- /dev/null
+++ b/scripting/examples/java/Newsgroup/Sender.java
@@ -0,0 +1,126 @@
+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++ )
+ {
+ //System.out.println( "Adding file: " + attachs[i].getName() );
+ 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;
+ }
+
+ }
+
+}