Difference between revisions of "JBoss mail configuration"
(12 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | OpenKM is a J2EE application deployed in JBoss application server. Some parameters have a default configuration that fit common user requirements but others | + | OpenKM is a J2EE application deployed in a JBoss application server. Some parameters have a default configuration that fit common user requirements but others depend on specific user configuration. |
{{Note|For specific JBoss issues, visit http://jboss.org/community/docs/DOC-10376.}} | {{Note|For specific JBoss issues, visit http://jboss.org/community/docs/DOC-10376.}} | ||
− | OpenKM sometimes | + | OpenKM sometimes sends emails to users (because they have subscribed a document or folder, for example) and you have to check that this email configuration is correct. If you edit the file ''$JBOSS_HOME/server/default/deploy/mail-service.xml'': |
$ vim $JBOSS_HOME/server/default/deploy/mail-service.xml | $ vim $JBOSS_HOME/server/default/deploy/mail-service.xml | ||
Line 40: | Line 40: | ||
Typically you only have to configure these parameters: | Typically you only have to configure these parameters: | ||
− | * '''mail.smtp.host''': this is the host where | + | * '''mail.smtp.host''': this is the host where your mail server is located. Can be localhost if you have a local mail server installed (like Postfix) |
− | * '''mail.from''': all the mails | + | * '''mail.from''': all the mails sent by OpenKM will be from this email address. Can be in the form of noreply@your-domain.com. |
− | But it depends on you own | + | But it depends on you own email configuration. If you run into problems, set the parameter '''mail.debug''' to ''true'' and review the JBoss log. |
$ tail -f $JBOSS_HOME/server/default/log/server.log | $ tail -f $JBOSS_HOME/server/default/log/server.log | ||
For more info, read http://community.jboss.org/wiki/JavaMail. | For more info, read http://community.jboss.org/wiki/JavaMail. | ||
+ | |||
+ | == Configuration for SMTP authentication == | ||
+ | When we want to use a mail server via a secured SMTP server with authentication we should make some changes to mail-service.xml file (an example using the SMTP server gmail.com). | ||
+ | |||
+ | <source lang="xml"> | ||
+ | <mbean code="org.jboss.mail.MailService" name="jboss:service=OpenKM"> | ||
+ | <attribute name="JNDIName">java:/mail/OpenKM</attribute> | ||
+ | <attribute name="User">USUARIO@gmail.com</attribute> | ||
+ | <attribute name="Password">PASSWORD</attribute> | ||
+ | <attribute name="Configuration"> | ||
+ | <!-- A test configuration --> | ||
+ | <configuration> | ||
+ | <!-- Change to your mail server prototocol --> | ||
+ | <property name="mail.store.protocol" value="pop3"/> | ||
+ | <property name="mail.transport.protocol" value="smtp"/> | ||
+ | |||
+ | <!-- Change to the user who will receive mail --> | ||
+ | <property name="mail.user" value="USUARIO@gmail.com"/> | ||
+ | |||
+ | <!-- Change to the mail server --> | ||
+ | <property name="mail.pop3.host" value="pop.gmail.com"/> | ||
+ | |||
+ | <!-- Change to the SMTP gateway server --> | ||
+ | <property name="mail.smtp.host" value="smtp.gmail.com"/> | ||
+ | <property name="mail.smtp.starttls.enable" value="true" /> | ||
+ | <property name="mail.smtp.socketFactory.class" value="javax.net.ssl.SSLSocketFactory" /> | ||
+ | |||
+ | <!-- The mail server port --> | ||
+ | <property name="mail.smtp.port" value="465"/> | ||
+ | <property name="mail.smtp.socketFactory.port" value="465" /> | ||
+ | |||
+ | <!-- Change to the address mail will be from --> | ||
+ | <property name="mail.from" value="USUARIO@gmail.com"/> | ||
+ | <property name="mail.smtp.user" value="USUARIO@gmail.com"/> | ||
+ | <property name="mail.smtp.password" value="PASSWORD"/> | ||
+ | <property name="mail.smtp.auth" value="true"/> | ||
+ | |||
+ | <!-- Enable debugging output from the javamail classes --> | ||
+ | <property name="mail.debug" value="false"/> | ||
+ | </configuration> | ||
+ | </attribute> | ||
+ | <depends>jboss:service=Naming</depends> | ||
+ | </mbean> | ||
+ | </source> | ||
+ | |||
+ | == Adding PKI certificate == | ||
+ | Some mail servers need you to have installed a PKI certificate on the server. If you don't have it installed you'll get some error like this: | ||
+ | |||
+ | ERROR [STDERR] javax.mail.MessagingException: Exception reading response; | ||
+ | nested exception is: | ||
+ | javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: | ||
+ | sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target | ||
+ | |||
+ | In this case, you must install the certificate. | ||
+ | |||
+ | * Download the file [[file:InstallCert.java]] | ||
+ | * Execute application | ||
+ | |||
+ | java InstallCert serverName | ||
+ | |||
+ | * Select option '1'. A file called jssecacerts is generated | ||
+ | * Overwrite jssecacerts to /usr/lib/jvm/java-6-sun/jre/lib/security/cacerts ( the path depends on your OS server and jdk version ) | ||
+ | * You must restart jboss for this to take effect | ||
+ | |||
+ | For more information about installing certificates, read: | ||
+ | * http://blogs.oracle.com/gc/entry/unable_to_find_valid_certification | ||
+ | * http://www.grim.se/guide/jre-cert | ||
+ | |||
+ | For more info read: | ||
+ | * http://java.sun.com/products/javamail/javadocs/com/sun/mail/smtp/package-summary.html. | ||
+ | * [http://java.sun.com/developer/onlineTraining/JavaMail/contents.html jGuru: Fundamentals of the JavaMail API] | ||
[[Category: Installation Guide]] | [[Category: Installation Guide]] |
Latest revision as of 13:29, 10 November 2011
OpenKM is a J2EE application deployed in a JBoss application server. Some parameters have a default configuration that fit common user requirements but others depend on specific user configuration.
For specific JBoss issues, visit http://jboss.org/community/docs/DOC-10376. |
OpenKM sometimes sends emails to users (because they have subscribed a document or folder, for example) and you have to check that this email configuration is correct. If you edit the file $JBOSS_HOME/server/default/deploy/mail-service.xml:
$ vim $JBOSS_HOME/server/default/deploy/mail-service.xml
You will see something like this:
<mbean code="org.jboss.mail.MailService" name="jboss:service=OpenKM">
<attribute name="JNDIName">java:/mail/OpenKM</attribute>
<attribute name="User">nobody</attribute>
<attribute name="Password">password</attribute>
<attribute name="Configuration">
<!-- A test configuration -->
<configuration>
<!-- Change to your mail server prototocol -->
<property name="mail.store.protocol" value="pop3"/>
<property name="mail.transport.protocol" value="smtp"/>
<!-- Change to the user who will receive mail -->
<property name="mail.user" value="nobody"/>
<!-- Change to the mail server -->
<property name="mail.pop3.host" value="pop3.your-domain.com "/>
<!-- Change to the SMTP gateway server -->
<property name="mail.smtp.host" value="smtp.your-domain.com "/>
<!-- The mail server port -->
<property name="mail.smtp.port" value="25"/>
<!-- Change to the address mail will be from -->
<property name="mail.from" value="noreply@your-domain.com"/>
<!-- Enable debugging output from the javamail classes -->
<property name="mail.debug" value="false"/>
</configuration>
</attribute>
<depends>jboss:service=Naming</depends>
</mbean>
Typically you only have to configure these parameters:
- mail.smtp.host: this is the host where your mail server is located. Can be localhost if you have a local mail server installed (like Postfix)
- mail.from: all the mails sent by OpenKM will be from this email address. Can be in the form of noreply@your-domain.com.
But it depends on you own email configuration. If you run into problems, set the parameter mail.debug to true and review the JBoss log.
$ tail -f $JBOSS_HOME/server/default/log/server.log
For more info, read http://community.jboss.org/wiki/JavaMail.
Configuration for SMTP authentication
When we want to use a mail server via a secured SMTP server with authentication we should make some changes to mail-service.xml file (an example using the SMTP server gmail.com).
<mbean code="org.jboss.mail.MailService" name="jboss:service=OpenKM">
<attribute name="JNDIName">java:/mail/OpenKM</attribute>
<attribute name="User">USUARIO@gmail.com</attribute>
<attribute name="Password">PASSWORD</attribute>
<attribute name="Configuration">
<!-- A test configuration -->
<configuration>
<!-- Change to your mail server prototocol -->
<property name="mail.store.protocol" value="pop3"/>
<property name="mail.transport.protocol" value="smtp"/>
<!-- Change to the user who will receive mail -->
<property name="mail.user" value="USUARIO@gmail.com"/>
<!-- Change to the mail server -->
<property name="mail.pop3.host" value="pop.gmail.com"/>
<!-- Change to the SMTP gateway server -->
<property name="mail.smtp.host" value="smtp.gmail.com"/>
<property name="mail.smtp.starttls.enable" value="true" />
<property name="mail.smtp.socketFactory.class" value="javax.net.ssl.SSLSocketFactory" />
<!-- The mail server port -->
<property name="mail.smtp.port" value="465"/>
<property name="mail.smtp.socketFactory.port" value="465" />
<!-- Change to the address mail will be from -->
<property name="mail.from" value="USUARIO@gmail.com"/>
<property name="mail.smtp.user" value="USUARIO@gmail.com"/>
<property name="mail.smtp.password" value="PASSWORD"/>
<property name="mail.smtp.auth" value="true"/>
<!-- Enable debugging output from the javamail classes -->
<property name="mail.debug" value="false"/>
</configuration>
</attribute>
<depends>jboss:service=Naming</depends>
</mbean>
Adding PKI certificate
Some mail servers need you to have installed a PKI certificate on the server. If you don't have it installed you'll get some error like this:
ERROR [STDERR] javax.mail.MessagingException: Exception reading response; nested exception is: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
In this case, you must install the certificate.
- Download the file File:InstallCert.java
- Execute application
java InstallCert serverName
- Select option '1'. A file called jssecacerts is generated
- Overwrite jssecacerts to /usr/lib/jvm/java-6-sun/jre/lib/security/cacerts ( the path depends on your OS server and jdk version )
- You must restart jboss for this to take effect
For more information about installing certificates, read:
- http://blogs.oracle.com/gc/entry/unable_to_find_valid_certification
- http://www.grim.se/guide/jre-cert
For more info read: