【发布时间】:2011-05-04 22:53:26
【问题描述】:
我在 Tomcat v.6.0.32 上运行 Alfresco v3.4.0E。除了通过出站 SMTP 服务器发送电子邮件外,一切正常。这是我得到的堆栈跟踪的相关部分:
Caused by: org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.NoSuchProviderException: No provider for smtp
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:418)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:341)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:356)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:345)
at org.alfresco.repo.action.executer.MailActionExecuter.executeImpl(MailActionExecuter.java:439)
... 144 more
Caused by: javax.mail.NoSuchProviderException: No provider for smtp
at javax.mail.Session.getProvider(Session.java:455)
at javax.mail.Session.getTransport(Session.java:650)
at javax.mail.Session.getTransport(Session.java:631)
at org.springframework.mail.javamail.JavaMailSenderImpl.getTransport(JavaMailSenderImpl.java:433)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:387)
... 148 more
我已经确保 mail.jar 和 activation.jar 都包含在类路径中:
[root tomcat]$ ll webapps/alfresco/WEB-INF/lib/ | grep mail.jar
-rw-rw-r-- 1 alfresco alfresco 356519 Jan 17 20:38 mail.jar
[root tomcat]$ ll webapps/alfresco/WEB-INF/lib/ | grep activation.jar
-rw-rw-r-- 1 alfresco alfresco 55932 Jan 17 20:38 activation.jar
这是我的 alfresco-global.properties 的摘录:
# Outbound SMTP -- sending emails from Alfresco to the outside world
mail.from.default=noreply@domain.local
mail.port=25
mail.protocol=smtp
mail.encoding=UTF-8
mail.header=
mail.smtp.auth=false
mail.smtp.timeout=30000
mail.host=smtp.domain.local
我已经使用同一个 SMTP 服务器通过 telnet 从 Alfresco 服务器成功发送了一封电子邮件。
我错过了什么?
更新
事实证明(感谢zaphgod!)这都是由一些配置问题引起的:注释掉一些属性解决了这个问题:
# Outbound SMTP -- sending emails from Alfresco to the outside world
mail.from.default=noreply@domain.local
#mail.port=25
#mail.protocol=smtp
mail.encoding=UTF-8
#mail.header=
#mail.smtp.auth=false
#mail.smtp.timeout=30000
mail.host=smtp.domain.local
现在的问题是,为什么会有这种行为?我很确定我首先使用的属性是默认值..
【问题讨论】:
标签: tomcat smtp jakarta-mail alfresco