Tomcat smtp没有提供程序

Tomcat smtp没有提供程序,tomcat,smtp,jakarta-mail,alfresco,Tomcat,Smtp,Jakarta Mail,Alfresco,我正在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 a

我正在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服务器发送了一封电子邮件

我错过了什么


更新

事实证明(谢谢!)这都是由一些配置问题引起的:注释一些属性解决了问题:

# 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

现在的问题是,为什么会有这种行为?我非常确定我首先使用的属性是默认值。

我希望您做到以下几点:
我希望你做到了以下几点:
邮件或激活jar是否已损坏?您所犯的错误看起来确实没有这两个错误中的一个,因此如果您认为它们存在,那么其中一个错误/损坏看起来是下一个最可能的解释


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

邮件或激活jar是否会损坏?您所犯的错误看起来确实没有这两个错误中的一个,因此如果您认为它们存在,那么其中一个错误/损坏看起来是下一个最可能的解释


请尝试解压缩它们(JAR是包含元数据的zip文件),并尝试使用类似md5sum的东西来确保它们是您期望的文件。

我猜,该错误是由行mail.protocol=smtp中的尾随空格字符引起的


至少在发布的配置和堆栈跟踪中存在空格。

我的猜测是,错误是由行mail.protocol=smtp中的尾随空格字符引起的


至少在您发布的配置和堆栈跟踪中有一个空格。

是的,我用我的出站电子邮件configYep更新了原始问题,我用我的出站电子邮件configMD5更新了原始问题告诉我,我使用的jar文件已经为互联网所知,但不是特别流行:
[tomcat]$md5sum webapps/alfresco/WEB-INF/lib/mail.jar 0bacd591fbd2ce1a5e0d0062be15ff8e webapps/alfresco/WEB-INF/lib/mail.jar[tomcat]$md5sum webapps/alfresco/WEB-INF/lib/activation.jar d5dd655f6056a72116f6a0666745a386 webapps/alfresco/WEB-INF/lib/activation.jar
我有:0bacd591fbd2ce1a5e0d0062be15ff8e mail.jar 3109D4266E2B4D7C94FABC63346504 activation-1.1.jar您检查过在tomcat安装的其他地方是否有这些jar的不同副本吗(如共同的或共享的)?是的,我检查了类路径中每个jar的内容,只是为了避免错误命名jar。只有webapp中包含的jar提供了javamail类/提供程序配置。感谢您的支持,顺便说一句。您可以尝试使用此技巧来识别javax.mail类的来源:-确保它来自您期望的jar请告诉我,我使用的jar文件已经为互联网所知,但并不特别流行:
[tomcat]$md5sum webapps/alfreco/WEB-INF/lib/mail.jar 0bacd591fbd2ce1a5e0d0062be15ff8e webapps/alfreco/WEB-INF/lib/mail.jar[tomcat]$md5sum webapps/alfresco/WEB-INF/lib/activation.jar d5dd655f6056a72116f6a0666745a386 webapps/alfresco/WEB-INF/lib/activation.jar
我有:0bacd591fbd2ce1a5e0d0062be15ff8e mail.jar 3109D4266E2B4D7C94FABC63346504 activation-1.1.jar您检查过在tomcat安装的其他地方是否有这些jar的不同副本吗(如共同的或共享的)?是的,我检查了类路径中每个jar的内容,只是为了避免错误命名jar。只有webapp中包含的jar提供了javamail类/提供程序配置。感谢您的支持,顺便说一句。您可以尝试这个技巧来识别javax.mail类的来源:-确保它来自您期望的jar谢谢Florian,我现在不能检查,但我打赌你绝对正确。我会尽快让你知道我能再次检查。谢谢Florian,我现在不能检查,但我打赌你绝对正确。我会尽快让你知道我能再次检查。