我在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
我已成功通过Alfresco服务器上的telnet
使用相同的SMTP服务器发送电子邮件。
我错过了什么?
更新
事实证明(感谢,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
现在的问题是,为什么会出现这种情况?我很确定我首先使用的属性是默认值..
答案 0 :(得分:4)
我的猜测是,错误是由邮件行中的尾随空格字符引起的.protocol = smtp
至少在您发布的配置和堆栈跟踪中存在空格。
答案 1 :(得分:0)
我希望你做了以下事情: Outbound email configuration
答案 2 :(得分:0)
邮件或激活jar可能会损坏吗?你得到的错误确实看起来没有两个中的一个,所以如果你认为他们在那里,那么其中一个不正确/腐败看起来像下一个最可能的解释
尝试解压缩它们(jar是带有元数据的zip文件),并尝试使用类似md5sum的内容来确保它们是您期望的那样。