| org.apache.cocoon.transformation.AbstractSAXTransformer org.apache.cocoon.mail.transformation.SendMailTransformer
SendMailTransformer | public class SendMailTransformer extends AbstractSAXTransformer (Code) | | The SendMailTransformer send mails with optional attachments using a SMTP
server and delivers furthermore a status report of each sent mail.
The SendMailTransformer requires the Sun's JavaMail API implementation. Please
download and copy the following files to the Cocoon lib directory:
<map:transformer name="sendmail" src="org.apache.cocoon.mail.transformation.SendMailTransformer">
<smtphost>smtp.foo.com</smtphost>
<from>sender@localhost</from>
</map:transformer>
where
-
<smtphost> is the SMTP server host name, e.g. smtp.foo.com
-
<from> is the sender e-mail address
Furthermore, these parameters can be defined in the sitemap pipeline section:
-
smtphost, from - If they are defined, this values overwrite
the values from component section described above.
-
to - email addresses of recipients
e.g.:
<map:parameter name="to" value="customer1@target.com,customer2@target.com"/>
-
subject - a string, can also come from an input module
e.g.; <map:parameter name="subject" value="{request-param:subject}"/>
-
body - a string, can also come from an input module
e.g.; <map:parameter name="body" value="{request-param:body}"/>
-
sendpartial - a boolean, define how to send the mails. When mail is being send
to more than one recipient and the parameter is set to false, then all email addresses
will appear concatenated in the address field at the mail client of the recipient.
The default is true.
More configurations can be made in a specific configuration file, which
can be retrieved with a
generator as
the input document. The input document should have the following configuration entities:
-
<email:smtphost>, <email:from> and
<email:subject> can be set to overwrite values from the
sitemap
-
<email:to> - each entry will be append to the list of
email addresses
-
<email:body> - Overwrites the value from the sitemap.
If there is a src attribute, the transformer will try to retrieve
the file and place it instead of a text-string as the mail body.
-
<email:attachment> - each entry defines a attachment.
The attribute name defines the name of the attachment. The mime-type attribute
defines the content of the attachment.
If there is a nested <email:content> - element, text can be included and the
attachment will then be a plain text-file.
Is there a url attribute, the transformer tries to retrieve the
appropriate file and handle it as an attachment.
To use a file as an attachment, retrieved over a protocol like http or
cocoon, use the src attribute.
Input document sample:
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns:email="http://apache.org/cocoon/transformation/sendmail">
<email:sendmail>
<email:smtphost>hostname.company.com</email:smtphost>
<email:from>info@company.com</email:from>
<email:to>customer3@target.com</email:to>
<email:to>customer4@target.com</email:to>
<email:to>customer5@target.com</email:to>
<email:to>customer6@target.com</email:to>
<email:subject>subject-content</email:subject>
<email:body src="cocoon:/softwareupdate.html?locale=en&country=UK"/>
<!-- <email:body>some Text</email:body> -->
<email:attachment name="hello.html" mime-type="text/html">
<email:content>
Dear Customer, please visit out new Product-Shop.
</email:content>
</email:attachment>
<email:attachment name="hello2.html" mime-type="text/html" src="cocoon:/src1"/>
<email:attachment name="hello3.html" mime-type="text/html"
url="C:\path\softwareupdate.html"/>
<email:attachment name="hello.gif" mime-type="image/gif"
url="c:\path\powered.gif"/>
</email:sendmail>
</document>
After the transformation a report will be generated, where the state for each sent mail can be seen.
In case of an exception, the exception-message and a stacktrace will be reported.
FIXME: Known Issues:
author: Peter Klassen version: $Id: SendMailTransformer.java 525980 2007-04-05 22:18:04Z hepabolu $ |
Inner Class :static class AttachmentDescriptor | |
Inner Class :static class AddressHandler | |
DEFAULT_BODY_MIMETYPE | final public static String DEFAULT_BODY_MIMETYPE(Code) | | |
ELEMENT_ATTACHMENT | final public static String ELEMENT_ATTACHMENT(Code) | | |
ELEMENT_ATTACHMENT_CONTENT | final public static String ELEMENT_ATTACHMENT_CONTENT(Code) | | |
ELEMENT_EMAIL_PREFIX | final public static String ELEMENT_EMAIL_PREFIX(Code) | | |
ELEMENT_FAILURE | final public static String ELEMENT_FAILURE(Code) | | |
ELEMENT_MAILBODY | final public static String ELEMENT_MAILBODY(Code) | | |
ELEMENT_MAILFROM | final public static String ELEMENT_MAILFROM(Code) | | |
ELEMENT_MAILSUBJECT | final public static String ELEMENT_MAILSUBJECT(Code) | | |
ELEMENT_MAILTO | final public static String ELEMENT_MAILTO(Code) | | |
ELEMENT_REPLYTO | final public static String ELEMENT_REPLYTO(Code) | | |
ELEMENT_RESULT | final public static String ELEMENT_RESULT(Code) | | |
ELEMENT_SENDMAIL | final public static String ELEMENT_SENDMAIL(Code) | | |
ELEMENT_SMTPHOST | final public static String ELEMENT_SMTPHOST(Code) | | |
ELEMENT_SMTPPORT | final public static String ELEMENT_SMTPPORT(Code) | | |
ELEMENT_SUCCESS | final public static String ELEMENT_SUCCESS(Code) | | |
MODE_ATTACHMENT | final protected static int MODE_ATTACHMENT(Code) | | |
MODE_ATTACHMENT_CONTENT | final protected static int MODE_ATTACHMENT_CONTENT(Code) | | |
MODE_BODY | final protected static int MODE_BODY(Code) | | |
MODE_FROM | final protected static int MODE_FROM(Code) | | |
MODE_NONE | final protected static int MODE_NONE(Code) | | |
MODE_REPLY_TO | final protected static int MODE_REPLY_TO(Code) | | |
MODE_SMTPHOST | final protected static int MODE_SMTPHOST(Code) | | |
MODE_SMTPPORT | final protected static int MODE_SMTPPORT(Code) | | |
MODE_SUBJECT | final protected static int MODE_SUBJECT(Code) | | |
MODE_TO | final protected static int MODE_TO(Code) | | |
PARAM_REPLY_TO | final public static String PARAM_REPLY_TO(Code) | | |
PARAM_SENDPARTIAL | final public static String PARAM_SENDPARTIAL(Code) | | |
PARAM_SMTPHOST | final public static String PARAM_SMTPHOST(Code) | | |
PARAM_SMTPPORT | final public static String PARAM_SMTPPORT(Code) | | |
attachmentDescriptor | protected AttachmentDescriptor attachmentDescriptor(Code) | | |
defaultReplyToAddresses | protected List defaultReplyToAddresses(Code) | | |
defaultSmtpPort | protected int defaultSmtpPort(Code) | | |
defaultToAddresses | protected List defaultToAddresses(Code) | | |
mailPort | protected int mailPort(Code) | | |
replyToAddresses | protected List replyToAddresses(Code) | | |
sendPartial | protected boolean sendPartial(Code) | | |
smtpMessage | protected Message smtpMessage(Code) | | |
SendMailTransformer | public SendMailTransformer()(Code) | | create a new Transformer
|
configure | public void configure(Configuration configuration) throws ConfigurationException(Code) | | |
getAddresses | public static InternetAddress[] getAddresses(AddressHandler[] handlerArr)(Code) | | |
recycle | public void recycle()(Code) | | See Also: org.apache.avalon.excalibur.pool.Recyclable.recycle |
Methods inherited from org.apache.cocoon.transformation.AbstractSAXTransformer | protected void addRecorder(XMLConsumer recorder)(Code)(Java Doc) public void characters(char[] p0, int p1, int p2) throws SAXException(Code)(Java Doc) public void comment(char ary, int start, int length) throws SAXException(Code)(Java Doc) public void configure(Configuration configuration) throws ConfigurationException(Code)(Java Doc) public void dispose()(Code)(Java Doc) public void endCDATA() throws SAXException(Code)(Java Doc) public void endDTD() throws SAXException(Code)(Java Doc) public void endDocument() throws SAXException(Code)(Java Doc) public void endElement(String uri, String name, String raw) throws SAXException(Code)(Java Doc) public void endEntity(String name) throws SAXException(Code)(Java Doc) public SourceParameters endParametersRecording(Parameters source) throws SAXException(Code)(Java Doc) public SourceParameters endParametersRecording(SourceParameters source) throws SAXException(Code)(Java Doc) public void endPrefixMapping(String prefix) throws SAXException(Code)(Java Doc) public DocumentFragment endRecording() throws SAXException(Code)(Java Doc) public XMLizable endSAXRecording() throws SAXException(Code)(Java Doc) public String endSerializedXMLRecording() throws SAXException, ProcessingException(Code)(Java Doc) public String endTextRecording() throws SAXException(Code)(Java Doc) public void endTransformingElement(String uri, String name, String raw) throws ProcessingException, IOException, SAXException(Code)(Java Doc) protected String findPrefixMapping(String uri)(Code)(Java Doc) protected AttributesImpl getMutableAttributes(Attributes a)(Code)(Java Doc) public void ignorableWhitespace(char[] p0, int p1, int p2) throws SAXException(Code)(Java Doc) public void processingInstruction(String target, String data) throws SAXException(Code)(Java Doc) public void recycle()(Code)(Java Doc) protected Object removeRecorder()(Code)(Java Doc) public void sendEndElementEvent(String localname) throws SAXException(Code)(Java Doc) public void sendEndElementEventNS(String localname) throws SAXException(Code)(Java Doc) protected void sendEndPrefixMapping() throws SAXException(Code)(Java Doc) public void sendEvents(Node node) throws SAXException(Code)(Java Doc) public void sendParametersEvents(SourceParameters pars) throws SAXException(Code)(Java Doc) public void sendStartElementEvent(String localname) throws SAXException(Code)(Java Doc) public void sendStartElementEvent(String localname, Attributes attr) throws SAXException(Code)(Java Doc) public void sendStartElementEventNS(String localname) throws SAXException(Code)(Java Doc) public void sendStartElementEventNS(String localname, Attributes attr) throws SAXException(Code)(Java Doc) protected void sendStartPrefixMapping() throws SAXException(Code)(Java Doc) public void sendTextEvent(String text) throws SAXException(Code)(Java Doc) public void service(ServiceManager manager) throws ServiceException(Code)(Java Doc) public void setDocumentLocator(Locator locator)(Code)(Java Doc) public void setup(SourceResolver resolver, Map objectModel, String src, Parameters params) throws ProcessingException, SAXException, IOException(Code)(Java Doc) public void setupTransforming() throws IOException, ProcessingException, SAXException(Code)(Java Doc) public void skippedEntity(String name) throws SAXException(Code)(Java Doc) public void startCDATA() throws SAXException(Code)(Java Doc) public void startDTD(String name, String public_id, String system_id) throws SAXException(Code)(Java Doc) public void startDocument() throws SAXException(Code)(Java Doc) public void startElement(String uri, String name, String raw, Attributes attr) throws SAXException(Code)(Java Doc) public void startEntity(String name) throws SAXException(Code)(Java Doc) public void startParametersRecording() throws SAXException(Code)(Java Doc) public void startPrefixMapping(String prefix, String uri) throws SAXException(Code)(Java Doc) public void startRecording() throws SAXException(Code)(Java Doc) public void startSAXRecording() throws SAXException(Code)(Java Doc) public void startSerializedXMLRecording(Properties format) throws SAXException(Code)(Java Doc) public void startTextRecording() throws SAXException(Code)(Java Doc) public void startTransformingElement(String uri, String name, String raw, Attributes attr) throws ProcessingException, IOException, SAXException(Code)(Java Doc)
|
|
|