On Wed, 2012-01-11 at 05:54 -0800, Thom Hehl wrote:
> This has been very helpful, thank you. I had been unable to find this:
> 
> One other question, my spring configuration for this looks like this:
> 
>   <bean id="mailSender" 
> class="org.springframework.mail.javamail.JavaMailSenderImpl">
>       <property name="host" value="smtp.xxxx.com"/>
>       <property name="password" value="xxxxx"/>
>       <property name="port" value="587"/>
>       <property name="username" value="nore...@xxxxx.com"/>
>       <property name="javaMailProperties">
>           <props>
>              <prop key="mail.smtp.from">nore...@xxxx.com</prop>
>              <prop key="mail.smtp.user">nore...@xxxx.com</prop>
>              <prop key="mail.smtp.auth">true</prop>
>              <prop key="mail.smtp.starttls.enable">true</prop>
>           </props>
>         </property>
>   </bean>
> 
> How do I place the properties for javaMailProperties in?

There are two ways that you can do this:

1.) You can put String values into JNDI with the <Environment/> tag.

https://tomcat.apache.org/tomcat-7.0-doc/config/globalresources.html#Environment_Entries

You would then need to use Spring to pull each String value from JNDI.
This would be a bit tedious if you need to specify more than one or two
values.

2.) Alternatively, you could configure a complete Java Mail Session with
Tomcat.

https://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html#JavaMail_Sessions

Then load the Session from JNDI with Spring and pass the session to your
org.springframework.mail.javamail.JavaMailSenderImpl bean, rather than
specifying individual properties.

>From the JavaMailSenderImpl Java Docs:

"Allows for defining all settings locally as bean properties.
Alternatively, a pre-configured JavaMail Session can be specified,
possibly pulled from an application server's JNDI environment."

http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/mail/javamail/JavaMailSenderImpl.html

Dan

> 
> -----Original Message-----
> From: Daniel Mikusa [mailto:dmik...@vmware.com] 
> Sent: Wednesday, January 11, 2012 8:29 AM
> To: Tomcat Users List
> Subject: Re: Context configuration file
> 
> On Wed, 2012-01-11 at 05:01 -0800, Thom Hehl wrote:
> > We are using a context configuration file to provide our database
> > connectivity through a JNDI entry to our application so that the file
> > can change without the purchasers of our software having to tinker about
> > with it internally. Here is our file:
> > 
> >  
> > 
> > <Context path="/chronicle" debug="5" reloadable="true"
> > crossContext="true">
> > 
> >  
> > 
> > <Logger className="org.apache.catalina.logger.FileLogger"
> > prefix="ej-Log." suffix=".txt" timestamp="true"/>
> > 
> > <Resource          name="jdbc/chronicle" 
> > 
> >  
> > auth="Container"
> > 
> >             type="javax.sql.DataSource"
> > 
> >             username="sa"
> > 
> >             password="xxxxxxx"
> > 
> >  
> > driverClassName="net.sourceforge.jtds.jdbc.Driver" 
> > 
> >  
> > url="jdbc:jtds:sqlserver://localhost/PsDb"
> > 
> >  
> > maxActive="-1"
> > 
> >  
> > maxIdle="0"
> > 
> > />
> > 
> > </Context>
> > 
> >  
> > 
> > I picked this trick up from a predecessor on a job and have never found
> > it documented anywhere. 
> 
> I'm not exactly sure what you mean here, but JNDI (i.e. the <Resource/>
> tag) is document here.
> 
> https://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html
> 
> and here.
> 
> https://tomcat.apache.org/tomcat-7.0-doc/config/globalresources.html
> 
> > I would like to use the same approach to define
> > JNDI keys for the mail server. Can someone help?
> 
> You can certainly do this.  Here's a link to the docs which describes
> how to define Mail Sessions.
> 
> https://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html#JavaMail_Sessions
> 
> Dan
> 

Reply via email to