Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.opencms.defaults
Class CmsMail  view CmsMail download CmsMail.java

java.lang.Object
  extended byjava.lang.Thread
      extended bycom.opencms.defaults.CmsMail
All Implemented Interfaces:
com.opencms.boot.I_CmsLogChannels, java.lang.Runnable

public class CmsMail
extends java.lang.Thread
implements com.opencms.boot.I_CmsLogChannels

This class is used to send a mail using the JavaMail package. Sun's mail.jar and activation.jar are required, if this class should be used in any OpenCms class.

Sender and recipients addresses may be given as String or as CmsUser objects. Different constructors for setting additional CC and BCC addresses are provided.

Attachments can be added using the addAttachment() method. If the current HTTP request is a multipart/form-data request and contains uploaded files, all these files will be sent as attachments, too.

For performance reasons, this classes uses threads for sending mails. Mail threads can be initialized and started by :

Example:
String from = "waruschan.babachan@framfab.de";
String[] to = {"alexander.lucas@framfab.de"};
String subject = "Testmail";
String content = "Hello World!";
 
CmsMail mail=new CmsMail(cms, from, to, subject, content, "text/plain");
mail.start();

Since:
OpenCms 4.1.37. Previously, this class was part of the com.opencms.workplace package.
Version:
$Name: $ $Revision: 1.14 $ $Date: 2003/02/15 11:14:57 $

Nested Class Summary
 
Nested classes inherited from class java.lang.Thread
java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
private  java.util.Vector attachContent
           
private  java.util.Vector attachType
           
private  java.lang.String c_ALTERNATIVE_MAILSERVER
           
private  java.lang.String[] c_BCC
           
private  java.lang.String[] c_CC
           
private  com.opencms.file.CmsObject c_CMS
           
private  java.lang.String c_CONTENT
           
private  java.lang.String c_FROM
           
private  java.lang.String c_MAILSERVER
           
private  java.lang.String c_SUBJECT
           
private  java.lang.String[] c_TO
           
private  java.lang.String c_TYPE
           
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Fields inherited from interface com.opencms.boot.I_CmsLogChannels
C_FLEX_CACHE, C_FLEX_LOADER, C_LOGGING, C_MODULE_CRITICAL, C_MODULE_DEBUG, C_MODULE_INFO, C_OPENCMS_CACHE, C_OPENCMS_CRITICAL, C_OPENCMS_CRONSCHEDULER, C_OPENCMS_DEBUG, C_OPENCMS_ELEMENTCACHE, C_OPENCMS_INFO, C_OPENCMS_INIT, C_OPENCMS_POOL, C_OPENCMS_STATICEXPORT, C_OPENCMS_STREAMING, C_PREPROCESSOR_IS_LOGGING
 
Constructor Summary
CmsMail(com.opencms.file.CmsObject cms, com.opencms.file.CmsUser from, com.opencms.file.CmsGroup to, java.lang.String subject, java.lang.String content, java.lang.String type)
          Create a new email object with a CmsUser as sender and a CmsGroup as recipient(s).
CmsMail(com.opencms.file.CmsObject cms, com.opencms.file.CmsUser from, com.opencms.file.CmsUser[] to, java.lang.String subject, java.lang.String content, java.lang.String type)
          Create a new email object with a CmsUser as sender and an array of CmsUser's as recipient(s).
CmsMail(com.opencms.file.CmsObject cms, java.lang.String from, java.lang.String[] to, java.lang.String[] cc, boolean isBcc, java.lang.String subject, java.lang.String content, java.lang.String type)
          Create a new email object with given FROM, TO and BCC addresses.
CmsMail(com.opencms.file.CmsObject cms, java.lang.String from, java.lang.String[] to, java.lang.String[] cc, java.lang.String[] bcc, java.lang.String subject, java.lang.String content, java.lang.String type)
          Create a new email object with given FROM, TO, CC and BCC addresses.
CmsMail(com.opencms.file.CmsObject cms, java.lang.String from, java.lang.String[] to, java.lang.String[] bcc, java.lang.String subject, java.lang.String content, java.lang.String type)
          Create a new email object with given FROM, TO and BCC addresses.
CmsMail(com.opencms.file.CmsObject cms, java.lang.String from, java.lang.String[] to, java.lang.String subject, java.lang.String content, java.lang.String type)
          Create a new email object with given FROM and TO addresses.
CmsMail(com.opencms.file.CmsUser from, com.opencms.file.CmsGroup to, java.lang.String subject, java.lang.String content, java.lang.String type)
           
CmsMail(com.opencms.file.CmsUser from, com.opencms.file.CmsUser[] to, java.lang.String subject, java.lang.String content, java.lang.String type)
           
CmsMail(java.lang.String from, java.lang.String[] to, java.lang.String[] cc, java.lang.String[] bcc, java.lang.String subject, java.lang.String content, java.lang.String type)
           
CmsMail(java.lang.String from, java.lang.String[] to, java.lang.String[] bcc, java.lang.String subject, java.lang.String content, java.lang.String type)
           
CmsMail(java.lang.String from, java.lang.String[] to, java.lang.String subject, java.lang.String content, java.lang.String type)
          The constuctors without CmsObject
 
Method Summary
 void addAttachment(java.lang.String content, java.lang.String type)
          Add a new attachment of the given content type to this CmsMail object.
private  javax.mail.Message buildMessage(java.lang.String smtpHost)
          Internal method for building a new MimeMessage object with the given content, attachments, SMTP host properties, FROM, TO, CC and BCC addresses.
protected  java.lang.String getClassName()
          Helper method for printing nice classnames in error messages
 void run()
          Try sending the mail.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

c_FROM

private java.lang.String c_FROM

c_TO

private java.lang.String[] c_TO

c_BCC

private java.lang.String[] c_BCC

c_CC

private java.lang.String[] c_CC

c_MAILSERVER

private java.lang.String c_MAILSERVER

c_ALTERNATIVE_MAILSERVER

private java.lang.String c_ALTERNATIVE_MAILSERVER

c_SUBJECT

private java.lang.String c_SUBJECT

c_CONTENT

private java.lang.String c_CONTENT

c_TYPE

private java.lang.String c_TYPE

c_CMS

private com.opencms.file.CmsObject c_CMS

attachContent

private java.util.Vector attachContent

attachType

private java.util.Vector attachType
Constructor Detail

CmsMail

public CmsMail(java.lang.String from,
               java.lang.String[] to,
               java.lang.String subject,
               java.lang.String content,
               java.lang.String type)
        throws com.opencms.core.CmsException
The constuctors without CmsObject


CmsMail

public CmsMail(com.opencms.file.CmsUser from,
               com.opencms.file.CmsUser[] to,
               java.lang.String subject,
               java.lang.String content,
               java.lang.String type)
        throws com.opencms.core.CmsException

CmsMail

public CmsMail(com.opencms.file.CmsUser from,
               com.opencms.file.CmsGroup to,
               java.lang.String subject,
               java.lang.String content,
               java.lang.String type)
        throws com.opencms.core.CmsException

CmsMail

public CmsMail(java.lang.String from,
               java.lang.String[] to,
               java.lang.String[] cc,
               java.lang.String[] bcc,
               java.lang.String subject,
               java.lang.String content,
               java.lang.String type)
        throws com.opencms.core.CmsException

CmsMail

public CmsMail(java.lang.String from,
               java.lang.String[] to,
               java.lang.String[] bcc,
               java.lang.String subject,
               java.lang.String content,
               java.lang.String type)
        throws com.opencms.core.CmsException

CmsMail

public CmsMail(com.opencms.file.CmsObject cms,
               com.opencms.file.CmsUser from,
               com.opencms.file.CmsUser[] to,
               java.lang.String subject,
               java.lang.String content,
               java.lang.String type)
        throws com.opencms.core.CmsException
Create a new email object with a CmsUser as sender and an array of CmsUser's as recipient(s). Email addresses will be taken from the CmsUser properties.


CmsMail

public CmsMail(com.opencms.file.CmsObject cms,
               com.opencms.file.CmsUser from,
               com.opencms.file.CmsGroup to,
               java.lang.String subject,
               java.lang.String content,
               java.lang.String type)
        throws com.opencms.core.CmsException
Create a new email object with a CmsUser as sender and a CmsGroup as recipient(s). The sender's address will be taken from the CmsUser properties, the recipient's addresses from all CmsUsers belonging to the given group.


CmsMail

public CmsMail(com.opencms.file.CmsObject cms,
               java.lang.String from,
               java.lang.String[] to,
               java.lang.String[] cc,
               java.lang.String[] bcc,
               java.lang.String subject,
               java.lang.String content,
               java.lang.String type)
        throws com.opencms.core.CmsException
Create a new email object with given FROM, TO, CC and BCC addresses.


CmsMail

public CmsMail(com.opencms.file.CmsObject cms,
               java.lang.String from,
               java.lang.String[] to,
               java.lang.String[] bcc,
               java.lang.String subject,
               java.lang.String content,
               java.lang.String type)
        throws com.opencms.core.CmsException
Create a new email object with given FROM, TO and BCC addresses.


CmsMail

public CmsMail(com.opencms.file.CmsObject cms,
               java.lang.String from,
               java.lang.String[] to,
               java.lang.String[] cc,
               boolean isBcc,
               java.lang.String subject,
               java.lang.String content,
               java.lang.String type)
        throws com.opencms.core.CmsException
Create a new email object with given FROM, TO and BCC addresses.


CmsMail

public CmsMail(com.opencms.file.CmsObject cms,
               java.lang.String from,
               java.lang.String[] to,
               java.lang.String subject,
               java.lang.String content,
               java.lang.String type)
        throws com.opencms.core.CmsException
Create a new email object with given FROM and TO addresses.

Method Detail

addAttachment

public void addAttachment(java.lang.String content,
                          java.lang.String type)
Add a new attachment of the given content type to this CmsMail object. The attachment will get a random name.


buildMessage

private javax.mail.Message buildMessage(java.lang.String smtpHost)
                                 throws java.lang.Exception
Internal method for building a new MimeMessage object with the given content, attachments, SMTP host properties, FROM, TO, CC and BCC addresses. Will be called from the thread connecting to the SMTP server and sending the mail.


getClassName

protected java.lang.String getClassName()
Helper method for printing nice classnames in error messages


run

public void run()
Try sending the mail. This can take a few seconds to several minutes. We don't want the user to wait for the response of the current HTTP request. Therefore we are running this in a new thread. The user will get his response immediately, then.

Specified by:
run in interface java.lang.Runnable