Source Code Cross Referenced for MailHelper.java in  » GIS » deegree » org » deegree » framework » mail » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » GIS » deegree » org.deegree.framework.mail 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


001:        //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/trunk/src/org/deegree/framework/mail/MailHelper.java $
002:        /*----------------    FILE HEADER  ------------------------------------------
003:
004:         This file is part of deegree.
005:         Copyright (C) 2001-2008 by:
006:         EXSE, Department of Geography, University of Bonn
007:         http://www.giub.uni-bonn.de/deegree/
008:         lat/lon GmbH
009:         http://www.lat-lon.de
010:
011:         This library is free software; you can redistribute it and/or
012:         modify it under the terms of the GNU Lesser General Public
013:         License as published by the Free Software Foundation; either
014:         version 2.1 of the License, or (at your option) any later version.
015:
016:         This library is distributed in the hope that it will be useful,
017:         but WITHOUT ANY WARRANTY; without even the implied warranty of
018:         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
019:         Lesser General Public License for more details.
020:
021:         You should have received a copy of the GNU Lesser General Public
022:         License along with this library; if not, write to the Free Software
023:         Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
024:
025:         Contact:
026:
027:         Andreas Poth
028:         lat/lon GmbH
029:         Aennchenstr. 19
030:         53115 Bonn
031:         Germany
032:         E-Mail: poth@lat-lon.de
033:
034:         Prof. Dr. Klaus Greve
035:         Department of Geography
036:         University of Bonn
037:         Meckenheimer Allee 166
038:         53115 Bonn
039:         Germany
040:         E-Mail: greve@giub.uni-bonn.de
041:
042:        
043:         ---------------------------------------------------------------------------*/
044:        package org.deegree.framework.mail;
045:
046:        // J2EE 1.2
047:        import java.io.File;
048:        import java.util.ArrayList;
049:        import java.util.Date;
050:        import java.util.List;
051:        import java.util.Properties;
052:
053:        import javax.mail.Message;
054:        import javax.mail.Multipart;
055:        import javax.mail.Session;
056:        import javax.mail.Transport;
057:        import javax.mail.internet.InternetAddress;
058:        import javax.mail.internet.MimeBodyPart;
059:        import javax.mail.internet.MimeMessage;
060:        import javax.mail.internet.MimeMultipart;
061:
062:        import org.deegree.framework.log.ILogger;
063:        import org.deegree.framework.log.LoggerFactory;
064:        import org.deegree.framework.util.CharsetUtils;
065:        import org.deegree.framework.util.StringTools;
066:        import org.deegree.i18n.Messages;
067:
068:        /**
069:         * A helper class to create and send mail.
070:         * 
071:         * @author <a href="mailto:tfr@users.sourceforge.net">Torsten Friebe </A>
072:         * @author last edited by: $Author: apoth $
073:         * 
074:         * @version $Revision: 9339 $,$Date: 2007-12-27 04:31:52 -0800 (Thu, 27 Dec 2007) $
075:         * 
076:         * @see javax.mail.Message
077:         * @see javax.mail.internet.MimeMessage
078:         */
079:
080:        public final class MailHelper {
081:
082:            private static final ILogger LOG = LoggerFactory
083:                    .getLogger(MailHelper.class);
084:
085:            /**
086:             * Creates a mail helper to send a message.
087:             * 
088:             */
089:            public MailHelper() {
090:            }
091:
092:            /**
093:             * This method creates an email message and sends it using the J2EE mail services
094:             * 
095:             * @param eMess
096:             *            a email message
097:             * @param mailHost
098:             *            name of the SMTP host
099:             * 
100:             * @throws SendMailException
101:             *             an exception if the message is undeliverable
102:             */
103:            public static void createAndSendMail(MailMessage eMess,
104:                    String mailHost) throws SendMailException {
105:                Properties p = System.getProperties();
106:                p.put("mail.smtp.host", mailHost);
107:                new MailHelper().createAndSendMail(eMess, Session
108:                        .getDefaultInstance(p));
109:            }
110:
111:            /**
112:             * This method creates an email message and sends it using the J2EE mail services
113:             * 
114:             * @param eMess
115:             *            a email message
116:             * @param mailHost
117:             *            name of the SMTP host
118:             * @param attachment
119:             *            Object to attach to a mail
120:             * @param mimeType
121:             *            mimetype of the attchment
122:             * @throws SendMailException
123:             */
124:            public static void createAndSendMail(MailMessage eMess,
125:                    String mailHost, Object[] attachment, String[] mimeType)
126:                    throws SendMailException {
127:                Properties p = System.getProperties();
128:                p.put("mail.smtp.host", mailHost);
129:                new MailHelper().createAndSendMail(eMess, Session
130:                        .getDefaultInstance(p), attachment, mimeType);
131:            }
132:
133:            /**
134:             * This method creates an email message and sends it using the J2EE mail services
135:             * 
136:             * @param eMess
137:             *            a email message
138:             * @param mailHost
139:             *            name of the SMTP host
140:             * @param files
141:             *            files to attach to a mail
142:             * @param mimeType
143:             *            mimetype of the attchment
144:             * @throws SendMailException
145:             */
146:            public static void createAndSendMail(MailMessage eMess,
147:                    String mailHost, File[] files, String[] mimeType)
148:                    throws SendMailException {
149:                Properties p = System.getProperties();
150:                p.put("mail.smtp.host", mailHost);
151:                new MailHelper().createAndSendMail(eMess, Session
152:                        .getDefaultInstance(p), files, mimeType);
153:            }
154:
155:            /**
156:             * This method creates an email message and sends it using the J2EE mail services
157:             * 
158:             * @param eMess
159:             *            a email message
160:             * @param session
161:             * 
162:             * @throws SendMailException
163:             *             an exception if the message is undeliverable
164:             * 
165:             * @see javax.mail.Transport
166:             * @see <a href="http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Resources4.html#63060">J2EE Mail
167:             *      Session connection </a>
168:             */
169:            public void createAndSendMail(MailMessage eMess, Session session)
170:                    throws SendMailException {
171:                createAndSendMail(eMess, session, null, null);
172:            }
173:
174:            /**
175:             * This method creates an email message and sends it using the J2EE mail services
176:             * 
177:             * @param eMess
178:             *            an email message
179:             * @param session
180:             * @param attachment
181:             *            Object to attach to a mail
182:             * @param mimeType
183:             *            mimetype of the attchment
184:             * @throws SendMailException
185:             *             an exception if the message is undeliverable
186:             */
187:            public void createAndSendMail(MailMessage eMess, Session session,
188:                    Object[] attachment, String[] mimeType)
189:                    throws SendMailException {
190:                if (eMess == null || !eMess.isValid()) {
191:                    throw new SendMailException("Not a valid e-mail!");
192:                }
193:                try {
194:                    int k = eMess.getMessageBody().length() > 60 ? 60 : eMess
195:                            .getMessageBody().length() - 1;
196:                    LOG.logDebug(StringTools.concat(500,
197:                            "Sending message, From: ", eMess.getSender(),
198:                            "\nTo: ", eMess.getReceiver(), "\nSubject: ", eMess
199:                                    .getSubject(), "\nContents: ", eMess
200:                                    .getMessageBody().substring(0, k), "..."));
201:                    // construct the message
202:                    MimeMessage msg = new MimeMessage(session);
203:                    msg.setFrom(new InternetAddress(eMess.getSender()));
204:                    msg.setRecipients(Message.RecipientType.TO, InternetAddress
205:                            .parse(eMess.getReceiver(), false));
206:                    msg.setSubject(eMess.getSubject(), CharsetUtils
207:                            .getSystemCharset());
208:                    msg.setHeader("X-Mailer", "JavaMail");
209:                    msg.setSentDate(new Date());
210:
211:                    // create and fill the first message part
212:                    List<MimeBodyPart> mbps = new ArrayList<MimeBodyPart>();
213:                    MimeBodyPart mbp = new MimeBodyPart();
214:                    mbp.setContent(eMess.getMessageBody(), eMess.getMimeType());
215:                    mbps.add(mbp);
216:                    if (attachment != null) {
217:                        if (attachment.length != mimeType.length) {
218:                            throw new SendMailException(Messages
219:                                    .getMessage("FRAMEWORK_MAIL_ATTACH"));
220:                        }
221:                        for (int i = 0; i < attachment.length; i++) {
222:                            mbp = new MimeBodyPart();
223:                            mbp.setContent(attachment[i], mimeType[i]);
224:                            mbp.setFileName("file" + i);
225:                            mbps.add(mbp);
226:                        }
227:                    }
228:                    // create the Multipart and add its parts to it
229:                    Multipart mp = new MimeMultipart();
230:                    for (int i = 0; i < mbps.size(); i++) {
231:                        mp.addBodyPart(mbps.get(i));
232:                    }
233:                    msg.setContent(mp);
234:                    // send the mail off
235:                    Transport.send(msg);
236:                    LOG.logDebug("Mail sent successfully! Header=", eMess
237:                            .getHeader());
238:                } catch (Exception e) {
239:                    LOG.logError(e.getMessage(), e);
240:                    String s = Messages.getMessage("FRAMEWORK_MAIL_SEND_ERROR",
241:                            eMess.getHeader());
242:                    throw new SendMailException(s, e);
243:                }
244:            }
245:
246:            /**
247:             * This method creates an email message and sends it using the J2EE mail services
248:             * 
249:             * @param eMess
250:             *            an email message
251:             * @param session
252:             * @param files
253:             *            files to attach to a mail
254:             * @param mimeType
255:             *            mimetype of the attchment
256:             * @throws SendMailException
257:             *             an exception if the message is undeliverable
258:             */
259:            public void createAndSendMail(MailMessage eMess, Session session,
260:                    File[] files, String[] mimeType) throws SendMailException {
261:                if (eMess == null || !eMess.isValid()) {
262:                    throw new SendMailException("Not a valid e-mail!");
263:                }
264:                try {
265:                    int k = eMess.getMessageBody().length() > 60 ? 60 : eMess
266:                            .getMessageBody().length() - 1;
267:                    LOG.logDebug(StringTools.concat(500,
268:                            "Sending message, From: ", eMess.getSender(),
269:                            "\nTo: ", eMess.getReceiver(), "\nSubject: ", eMess
270:                                    .getSubject(), "\nContents: ", eMess
271:                                    .getMessageBody().substring(0, k), "..."));
272:                    // construct the message
273:                    MimeMessage msg = new MimeMessage(session);
274:                    msg.setFrom(new InternetAddress(eMess.getSender()));
275:                    msg.setRecipients(Message.RecipientType.TO, InternetAddress
276:                            .parse(eMess.getReceiver(), false));
277:                    msg.setSubject(eMess.getSubject(), CharsetUtils
278:                            .getSystemCharset());
279:                    msg.setHeader("X-Mailer", "JavaMail");
280:                    msg.setSentDate(new Date());
281:
282:                    // create and fill the first message part
283:                    List<MimeBodyPart> mbps = new ArrayList<MimeBodyPart>();
284:                    MimeBodyPart mbp = new MimeBodyPart();
285:                    mbp.setContent(eMess.getMessageBody(), eMess.getMimeType());
286:                    mbps.add(mbp);
287:                    if (files != null) {
288:                        if (files.length != mimeType.length) {
289:                            throw new SendMailException(Messages
290:                                    .getMessage("FRAMEWORK_MAIL_ATTACH"));
291:                        }
292:                        for (int i = 0; i < files.length; i++) {
293:                            mbp = new MimeBodyPart();
294:                            mbp.attachFile(files[i]);
295:                            mbp.setHeader("Content-Type", mimeType[i]);
296:                            mbps.add(mbp);
297:                        }
298:                    }
299:                    // create the Multipart and add its parts to it
300:                    Multipart mp = new MimeMultipart();
301:                    for (int i = 0; i < mbps.size(); i++) {
302:                        mp.addBodyPart(mbps.get(i));
303:                    }
304:                    msg.setContent(mp);
305:                    // send the mail off
306:                    Transport.send(msg);
307:                    LOG.logDebug("Mail sent successfully! Header=", eMess
308:                            .getHeader());
309:                } catch (Exception e) {
310:                    LOG.logError(e.getMessage(), e);
311:                    String s = Messages.getMessage("FRAMEWORK_MAIL_SEND_ERROR",
312:                            eMess.getHeader());
313:                    throw new SendMailException(s, e);
314:                }
315:            }
316:        }
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.