KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > Yasna > util > MailSender


1 /**
2  * Copyright (C) 2001 Yasna.com. All rights reserved.
3  *
4  * ===================================================================
5  * The Apache Software License, Version 1.1
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * 1. Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  *
14  * 2. Redistributions in binary form must reproduce the above copyright
15  * notice, this list of conditions and the following disclaimer in
16  * the documentation and/or other materials provided with the
17  * distribution.
18  *
19  * 3. The end-user documentation included with the redistribution,
20  * if any, must include the following acknowledgment:
21  * "This product includes software developed by
22  * Yasna.com (http://www.yasna.com)."
23  * Alternately, this acknowledgment may appear in the software itself,
24  * if and wherever such third-party acknowledgments normally appear.
25  *
26  * 4. The names "Yazd" and "Yasna.com" must not be used to
27  * endorse or promote products derived from this software without
28  * prior written permission. For written permission, please
29  * contact yazd@yasna.com.
30  *
31  * 5. Products derived from this software may not be called "Yazd",
32  * nor may "Yazd" appear in their name, without prior written
33  * permission of Yasna.com.
34  *
35  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38  * DISCLAIMED. IN NO EVENT SHALL YASNA.COM OR
39  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46  * SUCH DAMAGE.
47  * ====================================================================
48  *
49  * This software consists of voluntary contributions made by many
50  * individuals on behalf of Yasna.com. For more information
51  * on Yasna.com, please see <http://www.yasna.com>.
52  */

53
54 package com.Yasna.util;
55
56
57 import com.Yasna.forum.PropertyManager;
58
59 import java.util.*;
60 import javax.mail.*;
61 import javax.mail.internet.*;
62 import javax.naming.*;
63
64 public final class MailSender extends Thread JavaDoc{
65
66     public static final String JavaDoc TEST_HOST = "hurricane";
67     public static final String JavaDoc TEST_FROM = "aflatoon@test.com";
68     public static final String JavaDoc TEST_TO = "aflatoon@test.com";
69     public static final String JavaDoc TEST_SUBJECT = "SMTPMail Test";
70     public static final String JavaDoc TEST_MESSAGE = "This is a test.";
71
72     private String JavaDoc host;
73     private String JavaDoc from;
74     private String JavaDoc to;
75     private String JavaDoc cc = null;
76     private String JavaDoc bcc = null;
77     private String JavaDoc subject;
78     private String JavaDoc message;
79     private String JavaDoc smtpusername= PropertyManager.getProperty("yazdMailSMTPServer.username");
80     private String JavaDoc smtppassword= PropertyManager.getProperty("yazdMailSMTPServer.password");
81
82
83     public MailSender ( String JavaDoc strHost,
84                         String JavaDoc strFrom,
85                         String JavaDoc strTo,
86                         String JavaDoc strCc,
87                         String JavaDoc strBcc,
88                         String JavaDoc strSubject,
89                         String JavaDoc strMessage
90     ) {
91
92         host = strHost == null ? TEST_HOST : strHost ;
93         from = strFrom == null ? TEST_FROM : strFrom ;
94         to = strTo == null ? TEST_TO : strTo ;
95         cc = strCc;
96         bcc = strBcc;
97         subject = strSubject == null ? TEST_SUBJECT : strSubject ;
98         message = strMessage == null ? TEST_MESSAGE : strMessage ;
99     }
100
101     public void run() {
102         try {
103             sendIt();
104         } catch(Exception JavaDoc e) {
105             System.out.println("Yazd MailSender - Exception while sending a mail "+e);
106         }
107     }
108
109     private void sendIt() throws Exception JavaDoc {
110         Properties properties;
111         MimeMessage msg;
112         Session session;
113         /*
114         System.out.println("\n-----------------------------------------..." +
115                            "\n ...SENDING MAIL..." +
116                            "\n-----------------------------------------..." +
117                            "\n host: " + host +
118                            "\n to: " + to +
119                            "\n from: " + from +
120                            "\n subject: " + subject +
121                            "\n-----------------------------------------..." +
122                            "\n" + message +
123                            "\n-----------------------------------------..."
124                            );
125         */

126         properties = new Properties();
127         properties.put("mail.smtp.host", host);
128         session = Session.getInstance(properties, null);
129         msg = new MimeMessage(session);
130         msg.addFrom(new InternetAddress[] {new InternetAddress(from)});
131         msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
132         if (cc != null) {
133             msg.addRecipient(Message.RecipientType.CC,
134                     new InternetAddress(cc));
135         }
136         if (bcc != null) {
137             msg.addRecipient(Message.RecipientType.BCC,
138                     new InternetAddress(bcc));
139         }
140         msg.setSubject(subject);
141         msg.setText(message);
142         //msg.setHeader("Content-Type", "text/html");
143
//msg.saveChanges();
144
if(smtpusername!=null && smtppassword !=null){
145             Transport tr = session.getTransport();
146             tr.connect(host, smtpusername, smtppassword);
147             msg.saveChanges(); // don't forget this
148
tr.sendMessage(msg, msg.getAllRecipients());
149             tr.close();
150             System.out.println("Yazd Forum Software (MailSender.java)-- (authsmtp) Mail sent successfully to:"+to);
151         }else{
152             Transport.send(msg);
153             System.out.println("Yazd Forum Software (MailSender.java)-- Mail sent successfully to:"+to);
154         }
155     }
156
157     public static void send( String JavaDoc _host, String JavaDoc _from, String JavaDoc _to, String JavaDoc _cc,
158                              String JavaDoc _bcc, String JavaDoc _subject, String JavaDoc _message)
159     {
160         MailSender sender = new MailSender( _host, _from, _to, _cc, _bcc, _subject, _message);
161         sender.start();
162     }
163
164     public static void send( String JavaDoc _host, String JavaDoc _from, String JavaDoc _to,
165                              String JavaDoc _subject, String JavaDoc _message)
166     {
167         send(_host, _from, _to, null, null, _subject, _message);
168     }
169
170     public void sendForTest( ) throws Exception JavaDoc
171     {
172         sendIt();
173     }
174
175     public static void send( String JavaDoc _host, String JavaDoc _from, String JavaDoc _to, String JavaDoc _cc,
176                              String JavaDoc _subject, String JavaDoc _message)
177     {
178         send(_host, _from, _to, _cc, null, _subject, _message);
179     }
180 }
181
Popular Tags