我使用Tomcat 6发送带有Javax.mail API的电子邮件客户端,我在server.xml中设置我的配置如下
<Resource name="mail/Session" auth="Container"
type="javax.mail.Session"
mail.smtp.host="localhost"/>
在我的web.xml中,如下所示
<resource-ref>
<description>Resource reference to a container-managed JNDI JavaMail factory for sending e-mails.</description>
<res-ref-name>mail/Session</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth>
</resource-ref>
但是当我尝试使用context.lookup
创建邮件会话时ontext initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
*mailSession = (Session)envCtx.lookup("mail/Session");*
调用nvCtx.lookup(“mail / Session”);是没有返回....它在org / springframework / jms / listener / DefaultMessageListenerContainer ...
任何线索...... 我感谢任何帮助。
由于 维杰
答案 0 :(得分:2)
由于你不使用弹簧,请使用:
来源:Apache Tomcat 6.0 Documentation - JDNI Resources
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
Session session = (Session) envCtx.lookup("mail/Session");
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(request.getParameter("from")));
InternetAddress to[] = new InternetAddress[1];
to[0] = new InternetAddress(request.getParameter("to"));
message.setRecipients(Message.RecipientType.TO, to);
message.setSubject(request.getParameter("subject"));
message.setContent(request.getParameter("content"), "text/plain");
Transport.send(message);
答案 1 :(得分:0)
您的配置看起来没问题,可能需要先清理服务器(如果使用eclipse)。
无论如何:如果你使用spring,那么你可以使用spring Framwork来访问JNDI资源:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-3.0.xsd">
<jee:jndi-lookup id="jndiEmailSession"
jndi-name="java:comp/env/email/Session" />
</beans>