2011-05-03 56 views
0

我正在Tomcat v.6.0.32上运行Alfresco v3.4.0E。除了通过出站SMTP服务器发送电子邮件以外,一切正常。这是堆栈跟踪的相关部分,我得到:没有提供给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 
[email protected] 
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 

我已经成功通过telnet从露天服务器发送使用同样的SMTP服务器的电子邮件。

我错过了什么?


UPDATE

原来(感谢,zaphgod!)那都是造成一些配置问题:注释掉一些性质解决该问题:

# Outbound SMTP -- sending emails from Alfresco to the outside world 
[email protected] 
#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 

现在问题是,为什么这种行为?我敢肯定,我第一次使用的属性与默认值..

回答

4

我的猜测是,该错误是由该行mail.protocol尾随空格字符= SMTP

在您发布配置至少引起的堆栈跟踪的空间是存在的。

+0

谢谢Florian,我现在无法检查,但我敢打赌,你绝对是对的。一旦我可以仔细检查,我会尽快通知你。 – skuro 2011-05-04 20:53:28

0

能否邮件或激活罐子被破坏?你得到的错误看起来像你没有其中一个,所以如果你认为他们在那里,然后其中一个错误/腐败看起来像下一个最有可能的解释

尝试解压缩它们(罐子是带有元数据的zip文件),并且还尝试使用类似md5sum的东西来确保它们是您期望的。

+0

MD5告诉我,我正在使用的jar文件已经为互联网所知,但并不特别受欢迎: '[tomcat] $ md5sum webapps/alfresco/WEB-INF/LIB /的mail.jar 0bacd591fbd2ce1a5e0d0062be15ff8e web应用/露天/ WEB-INF/LIB /的mail.jar [Tomcat的] $的md5sum web应用/露天/ WEB-INF/LIB /没有activation.jar d5dd655f6056a72116f6a0666745a386 web应用/露天/ WEB -INF/lib目录/ activation.jar' – skuro 2011-05-04 07:52:46

+0

我: 0bacd591fbd2ce1a5e0d0062be15ff8e的mail.jar 3109d42266e2b4d7c94fabcc63346504激活1.1.jar 你检查,看看是否在你有这些罐子的任何不同的副本别处r tomcat安装(例如通用或共享)? – Gagravarr 2011-05-04 08:22:18

+0

是的,我检查了CLASSPATH中每个jar的内容,只是为了避免误称JAR。只有webapp中包含的JAR提供javamail类/提供程序配置。感谢您的支持,顺便说一句。 – skuro 2011-05-04 09:14:10