Hi!
I'm having a problem with sendmail. I've successfuly set up sendmail
logicsheet, put mail.jar from JavaMail 1.3 pakage to WEB-INF/lib. Transformed
XSP page (Java source in work dir, attached) seemes to be ok and no errors
reported in log-file...
But still i can't recieve an e-mail, and most strange thing is that result of
pipeline execution is empty document... I try to apply not valid e-mail
address and still the same result - no result (empty document).
Desired result:
<page>
<upsa>UPSA</upsa>
</page>
and an e-mail message in my inbox :)
My XSP:
<?xml version="1.0" encoding="UTF-8"?>
<xsp:page
language="java"
xmlns:xsp="http://apache.org/xsp"
xmlns:xsp-request="http://apache.org/xsp/request/2.0"
xmlns:sendmail="http://apache.org/cocoon/sendmail/1.0" >
<page>
<xsp:logic>
String text =
"Hi,\n"+
"this mail has been send through a web form ...\n";
</xsp:logic>
<sendmail:send-mail>
<sendmail:charset>ISO-8859-1</sendmail:charset>
<sendmail:from>[EMAIL PROTECTED]</sendmail:from>
<sendmail:to>[EMAIL PROTECTED]</sendmail:to>
<sendmail:subject>Cocoon send mail test</sendmail:subject>
<!-- Modify the next line to point to your mail server -->
<sendmail:smtphost>192.168.0.3</sendmail:smtphost>
<sendmail:body>
<xsp:expr>text</xsp:expr>
</sendmail:body>
</sendmail:send-mail>
<upsa>UPSA</upsa>
</page>
</xsp:page>
Sitemap pipeline:
<map:match pattern="mail.xml">
<map:generate src="docs/mail.xsp" type="serverpages"/>
<map:serialize type="xml"/>
</map:match>
Snip from sitemap logfile:
DEBUG (2002-09-18) 15:12.29:482 [sitemap] (/proza-new/mail.xml)
HttpProcessor[8080][4]/sitemap_xmap: Matched wildcard pattern *.xml
DEBUG (2002-09-18) 15:12.29:483 [sitemap] (/proza-new/mail.xml)
HttpProcessor[8080][4]/AbstractSitemap:
Current Sitemap Parameters:
PARAM: '1' VALUE: 'mail'
PARAM: '0' VALUE: 'mail.xml'
DEBUG (2002-09-18) 15:12.29:483 [sitemap.selector.request-parameter]
(/proza-new/mail.xml) HttpProcessor[8080][4]/RequestParameterSelector:
Request parameter 'action' not set -- failing.
DEBUG (2002-09-18) 15:12.29:484 [sitemap] (/proza-new/mail.xml)
HttpProcessor[8080][4]/sitemap_xmap: Matched wildcard pattern mail.xml
DEBUG (2002-09-18) 15:12.29:485 [sitemap] (/proza-new/mail.xml)
HttpProcessor[8080][4]/AbstractSitemap:
Current Sitemap Parameters:
PARAM: '0' VALUE: 'mail.xml'
PARAM: '../1' VALUE: 'mail'
PARAM: '../0' VALUE: 'mail.xml'
DEBUG (2002-09-18) 15:12.29:485 [sitemap] (/proza-new/mail.xml)
HttpProcessor[8080][4]/sitemap_xmap: Component
generator:serverpages(Parameters.EMPTY_PARAMETERS)
DEBUG (2002-09-18) 15:12.29:486 [sitemap] (/proza-new/mail.xmll)
HttpProcessor[8080][4]/sitemap_xmap: Source= docs/mail.xsp
DEBUG (2002-09-18) 15:12.29:487 [sitemap] (/proza-new/mail.xml)
HttpProcessor[8080][4]/sitemap_xmap: Component
serializer:xml(Parameters.EMPTY_PARAMETERS)
Help me, please! I've killed 2 hours to find out where is the problem...
My env: Cocoon 2.0.3, Tomcat 4.0.4, JDK 1.4.0_01, SuSE 8.0
Ivan Luzyanin.
package org.apache.cocoon.www.docs;
import java.io.File;
import java.io.IOException;
import java.io.StringReader;
//import java.net.*;
import java.util.Date;
import java.util.List;
import java.util.Stack;
//import org.w3c.dom.*;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;
//import org.apache.avalon.framework.*;
import org.apache.avalon.framework.component.Component;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.component.ComponentSelector;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.excalibur.datasource.DataSourceComponent;
//import org.apache.avalon.framework.util.*;
import org.apache.cocoon.Constants;
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.components.parser.Parser;
import org.apache.cocoon.generation.Generator;
//import org.apache.cocoon.util.*;
import org.apache.cocoon.components.language.markup.xsp.XSPGenerator;
import org.apache.cocoon.components.language.markup.xsp.XSPObjectHelper;
import org.apache.cocoon.components.language.markup.xsp.XSPRequestHelper;
import org.apache.cocoon.components.language.markup.xsp.XSPResponseHelper;
import org.apache.cocoon.components.language.markup.xsp.XSPSessionHelper;
/* User Imports */
import javax.mail.Message;
import javax.mail.Transport;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.AddressException;
import java.util.Date;
import java.util.Properties;
/**
* Generated by XSP. Edit at your own risk, :-)
*/
public class mail_xsp extends XSPGenerator {
static {
dateCreated = 1032351150379L;
dependencies = new File[] {
};
}
/* Built-in parameters available for use */
// context - ServletContext
// request - org.apache.cocoon.environment.Request
// response - org.apache.cocoon.environment.Response
// parameters - parameters defined in the sitemap
/* User Class Declarations */
static Properties _sendmail_properties;
static {
_sendmail_properties = new Properties();
_sendmail_properties.put("mail.smtp.host","127.0.0.1");
}
/**
* Generate XML data.
*/
public void generate() throws SAXException, IOException, ProcessingException {
this.contentHandler.startDocument();
AttributesImpl xspAttr = new AttributesImpl();
this.contentHandler.startPrefixMapping(
"xml",
"http://www.w3.org/XML/1998/namespace"
);
this.contentHandler.startPrefixMapping(
"xsp",
"http://apache.org/xsp"
);
this.contentHandler.startPrefixMapping(
"xsp-request",
"http://apache.org/xsp/request/2.0"
);
this.contentHandler.startPrefixMapping(
"sendmail",
"http://apache.org/cocoon/sendmail/1.0"
);
this.contentHandler.startElement(
"",
"page",
"page",
xspAttr
);
xspAttr.clear();
this.characters("\n ");
String text =
"Hi,\n"+
"this mail has been send through a web form ...\n";
this.characters("\n ");
try {
Properties _sendmail_properties = new Properties(this._sendmail_properties);
if (!"null".equals(String.valueOf(
""
+ "192.168.0.3"
))) {
_sendmail_properties.put("mail.smtp.host",String.valueOf(
""
+ "192.168.0.3"
));
}
javax.mail.Session _sendmail_session = javax.mail.Session.getDefaultInstance(_sendmail_properties,null);
MimeMessage _sendmail_message = new MimeMessage(_sendmail_session);
InternetAddress _sendmail_from = new InternetAddress(String.valueOf(
""
+ "[EMAIL PROTECTED]"
));
_sendmail_message.setFrom(_sendmail_from);
InternetAddress _sendmail_to = new InternetAddress(String.valueOf(
""
+ "[EMAIL PROTECTED]"
));
_sendmail_message.setRecipient(Message.RecipientType.TO,_sendmail_to);
_sendmail_message.setSentDate(new Date());
_sendmail_message.setSubject(String.valueOf(
""
+ "Cocoon send mail test"
));
if (!"null".equals(String.valueOf(
""
+ "ISO-8859-1"
))) {
_sendmail_message.setText(String.valueOf(
""
+ " "
+
(text)
+ " "
),String.valueOf(
""
+ "ISO-8859-1"
));
} else {
_sendmail_message.setText(String.valueOf(
""
+ " "
+
(text)
+ " "
));
}
Transport.send(_sendmail_message);
} catch (AddressException _sendmail_exception) {
xspAttr.addAttribute(
"",
"type",
"type",
"CDATA",
"user"
);
this.contentHandler.startElement(
"",
"error",
"error",
xspAttr
);
xspAttr.clear();
this.characters("Your email address is invalid.");
this.contentHandler.endElement(
"",
"error",
"error"
);
} catch (MessagingException _sendmail_exception) {
xspAttr.addAttribute(
"",
"type",
"type",
"CDATA",
"server"
);
this.contentHandler.startElement(
"",
"error",
"error",
xspAttr
);
xspAttr.clear();
this.characters("An error occured while sending email.");
this.contentHandler.endElement(
"",
"error",
"error"
);
}
this.characters("\n ");
this.contentHandler.startElement(
"",
"upsa",
"upsa",
xspAttr
);
xspAttr.clear();
this.characters("UPSA");
this.contentHandler.endElement(
"",
"upsa",
"upsa"
);
this.characters("\n ");
this.contentHandler.endElement(
"",
"page",
"page"
);
this.contentHandler.endPrefixMapping(
"xml"
);
this.contentHandler.endPrefixMapping(
"xsp"
);
this.contentHandler.endPrefixMapping(
"xsp-request"
);
this.contentHandler.endPrefixMapping(
"sendmail"
);
this.contentHandler.endDocument();
}
}
---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html>
To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>