Probleme bei der eMail-Konfiguration

cancel
Showing results for 
Search instead for 
Did you mean: 
bnice_6017
Member II

Probleme bei der eMail-Konfiguration

Wenn ich den Server zum Versenden von Emails einrichte, lässt sich Alfresco anschließend nicht mehr starten.
Folgender Fehler steht dann im Logfile:


25.02.2009 16:25:01 org.apache.catalina.core.StandardContext listenerStart
SCHWERWIEGEND: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.RuntimeException: java.net.BindException: Address already in use
   at org.subethamail.smtp.server.SMTPServer.start(SMTPServer.java:198)
   at org.alfresco.email.server.impl.subetha.SubethaEmailServer.startup(SubethaEmailServer.java:66)
   at org.alfresco.email.server.EmailServer.onBootstrap(EmailServer.java:236)
   at org.alfresco.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:62)
   at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:77)
   at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
   at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:75)
   at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:246)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:355)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
   at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:830)
   at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:719)
   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
   at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
   at org.apache.catalina.core.StandardService.start(StandardService.java:516)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.net.BindException: Address already in use
   at java.net.PlainSocketImpl.socketBind(Native Method)
   at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
   at java.net.ServerSocket.bind(ServerSocket.java:319)
   at org.subethamail.smtp.server.SMTPServer.createServerSocket(SMTPServer.java:304)
   at org.subethamail.smtp.server.SMTPServer.start(SMTPServer.java:194)
   … 35 more

Alfresco soll nur eMails versenden (Benachrichtigungen an User), ein Empfang ist nicht notwendig.
Wahrscheinlich fehlen an anderer Stelle noch die Angaben des Mail-Servers, über den verschickt werden soll, aber wo kann ich den angeben?

Angepasst habe ich die custom-email-server.properties wie folgt:

/opt/Alfresco/tomcat/shared/classes/alfresco/extension/custom-email-server.properties:

#
# Alfresco Email Service and Email Server
#
# Enable/Disable the inbound email service.  The service could be used by processes other than
# the Email Server (e.g. direct RMI access) so this flag is independent of the Email Service.
email.inbound.enabled=false

# The username to authenticate as when the sender address is not recognised
#email.inbound.unknownUser=anonymous

# Email Server properties
email.server.enabled=true
#email.server.port=25
#email.server.domain=alfresco.com
#
# A comma separated list of email REGEX patterns of allowed senders.
# If there are any values in the list then all sender email addresses
# must match.  For example:
#   .*\@alfresco\.com, .*\@alfresco\.org
# Allow anyone:
email.server.allowed.senders=.*
#
# A comma separated list of email REGEX patterns of blocked senders.
# If the sender email address matches this then the message will be rejected.
# For example:
#   .*\@hotmail\.com, .*\@googlemail\.com
#email.server.blocked.senders=
9 Replies
antonkejr
Member II

Re: Probleme bei der eMail-Konfiguration

Hallo bnice,

ich schon wieder ;-).

Also, ich glaube, du verwechselst da 2 Sachen :

    inbound Mail = Mail AN Alfresco bzw Alftresco-Spaces
    outbound Mail = Mails, die Alfresco verschickt; z.B. Notification-Mails oder Einladungen
Mit den Einträgen in "custom-email-server.properties" versuchst Du inbound-Mail zu konfigurieren, bzw. in -anderen Worten- den seid der V3 eingebauten Mailserver von Alfresco zu aktivieren.

Nach deinem Log-File zu urteilen läuft aber auf Deinem PC bereits ein SMTP-/Mail-Server der den Port 25 belegt = "an ihm lauscht". Da dies nicht geht, kommt die Meldung in catalina.out:
java.lang.RuntimeException: java.net.BindException: Address already in use

Da Du ja aber nur "outbound"-Mails benötigst, musst du eigentlich kaum etwas tun, wenn auf deinem Alfresco-Rechner bereits ein lokaler SMTP-Server läuft. Ist ja wohl so.

Zuerst entfernst Du wieder die beiden Files "custom-email-server.properties" und custom-email-server-context.xml".

Falls Dein bereits laufender SMTP-Server auf der Alfresco-Machine ein SMTP-Server ohne Authentifizierung für localhost ist ( der default), dann musst du eigentlich gar nichts tun : Alfresco kann Mails verschicken !
Absender ist aber alfresco@alfresco.org ;-).

Um die Absender-Adresse bzw auch auch Authentifizierungs-Information anzugeben oder einen anderen SMTP-Server anzusprechen, nimmst Du folgendes in deine "custom-repository.properties " unter "tomcat/shared/classes/alfresco/extension" auf:

mail.host=
mail.port=25
mail.username=anonymous
mail.password=
# Set this value to UTF-8 or similar for encoding of email messages as required
mail.encoding=UTF-8
# Set this value to 7bit or similar for Asian encoding of email headers as required
mail.header=
mail.from.default=alfresco@deine-domaine.de

Bitte ändern wie und wo nötig :-) …

Wenn Du jetzt auch noch in der "web-client-config-custom.xml" diese Sektion aufnimmst

<config>
      <client>
         <from-email-address>alfresco@deine-domain.de</from-email-address>
         <search-max-results>100</search-max-results>
      </client>
   </config>

schickt auch Alfresco Share mit der richtigen from-Adresse.

Ich hoffe diese Information beseitigt einige Verwirrungen und ist hilfreich.

Beste Grüße

Toni
bnice_6017
Member II

Re: Probleme bei der eMail-Konfiguration

Hi,

eine gewisse Verwirrung lag aufgrund diverser tw. widersprüchlicher Hinweise und Posts zum Thema eMail-Konfig bei mir bestimmt vor…  Smiley Very Happy
So langsam klärt sich aber auch die Bedeutung der verschiedenen Konfig-Dateien (und -Orte) bei mir.
Mit Deinem Hinweis habe ich jetzt auch einen Teilerfolg verzeichnen können: Das Senden an externe (d.h. nicht zur eigenen Mail-Domain gehörende) Adressen funktioniert.
Allerdings gehen keine Mails an Empfänger der gleichen Domain.
Betrifft Share als auch den Explorer gleichermaßen.

Also z.B.
Eigener Mail-Account:
jemand@maildomain.com
(Mail-Server mail.maildomain.com ist extern gehostet)

Senden an user@yahoo.de (oder ähnlich) geht, Mail an irgendwer@maildomain.com geht nicht (kommt nicht an).

Die Konfig sieht wie folgt aus:

mail.host=
mail.port=25
mail.username=anonymous
mail.password=
# Set this value to UTF-8 or similar for encoding of email messages as required
mail.encoding=UTF-8
# Set this value to 7bit or similar for Asian encoding of email headers as required
mail.header=
mail.from.default=alfresco@maildomain.com

Also noch nichts weiter ausser der Domain geändert…

[UPDATE]
Bei der Angabe eines mail-host, User usw. bekomme ich im Log immerhin eine Fehlermeldung, dass POP3 before SMTP notwendig sei.

[UPDATE2]
Wenn ich keinen Mail-Host angebe, werde die Mails z.T. vom Empfänger Mail-Server abgelehnt (Fehler 5xx z.B. bei Web.de), da sie von einem Open-Relay kommen, oder andere Merkmale fehlen
http://freemail.web.de/reject/. Stimmt ja auch, da der Alfreso-Server kein "echter" Mailserver ist, also muss ich über unseren offiziellen Mail-Server gehen, was aber bisher an obigem Problem scheitert…
bnice_6017
Member II

Re: Probleme bei der eMail-Konfiguration

Noch eine weitere Frage:
Müssen bei Nutzung von TLS nur die folgenden Einträge in die custom-repositories.properties eingefügt werden, oder muss TLS noch an anderer Stelle aktiviert werden?


mail.port=465
mail.protocol=smtps
mail.smtps.starttls.enable=true
mail.smtps.auth=true

Also zusätzlich evtl. noch

<property name="javaMailProperties">
            <props>
                <prop key="mail.smtps.auth">${mail.smtps.auth}</prop>
                <prop key="mail.smtps.starttls.enable">${mail.smtps.starttls.enable}</prop>
            </props>
        </property>
in core-services-content.xml anpassen, um TLS zu starten?
antonkejr
Member II

Re: Probleme bei der eMail-Konfiguration

Hi bnice,

zur TSL-Konfiguration kann ich nichts sagen, weil ich mich damit noch nicht beschäftigt habe… Das Problem stellt sich bei uns nicht, da Alfresco und der Mailserver auf der gleichen Maschine laufen : einem angemieteten Rootserver.

Aber zu Deinem vorhergehenden Posting noch einige Anmerkungen. Du schreibst :

Also z.B.
Eigener Mail-Account:
jemand@maildomain.com
(Mail-Server mail.maildomain.com ist extern gehostet)

Senden an user@yahoo.de (oder ähnlich) geht, Mail an irgendwer@maildomain.com geht nicht (kommt nicht an).

Nun das bedeutet m.E., dass Alfresco ordnungsgemäss an den SMTP-Service/-Server auf der Alfresco-Maschine übergeben hat. Dieser lokale MTA (=SMTP-Server) hat die Mails dann an euren externen Mailserver weitergeleitet. Dass Mails innerhalb maildomain.com nicht ankommen, dürfte eigentlich nur etwas mit eurer Mailkonfiguration (lokaler SMTP-Server ->extern gehosteter Mailserver) zu tun haben. Alfresco ist da bereits aus dem Spiel.

Alfresco arbeitet in diesem Kontext nicht als Mailserver. Er übergibt eine Mail nur an einen lokalen SMTP-Server.

Mach doch mal
telnet localhost 25
auf dem Alfresco-Server (in einem Shell-Fenster). Nichts anderes tut Alfresco. Näheres und ein Beispiel findest Du hier: http://de.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
So findest Du auch raus, welcher SMTP auf dieser Kiste arbeitet.

Wie gesagt, ich denke das Problem liegt an eurer Mailkonfiguration. Da solltest du nach dem Fehler suchen.

Beste Grüße

Toni
bnice_6017
Member II

Re: Probleme bei der eMail-Konfiguration

Hi Toni,

bin am Freitag noch etwas weiter gekommen und kann die Probleme jetzt näher eingrenzen.
Auf dem Server selbst läuft sendmail:
localhost.localdomain ESMTP Sendmail 8.13.8/8.13.8;

Die Einrichtung mit TLS scheint übrigens auch zu funktionieren, allerdings heissen die notwendigen Variablen geringfügig anders, nämlich mail.stmp.starttls.enable und mail.smtp.auth anstelle von …smtps.xxx
Bei Nutzung von TLS bekomme ich auf unserem Mailserver einen Eintrag im Log "SSL error 995", wahrscheinlich, weil ich das Server-Zertifikat bisher nicht importiert habe.

Was den anderen Fall (ohne externen Mailserver) betrifft, so werden nur Mails an den yahoo-Mailserver zugestellt, andere (wie beispielsweise web.de) sind intelligent genug, diese Mails abzuweisen, weil sie von einem OpenRelay kämen, oder der ReverseDNS-Eintrag fehlt…
Somit stimme ich Dir voll zu, dass der Fehler nicht mehr in Alfresco zu suchen ist… Trotzdem schon mal danke für die schnelle Antwort!

Aber vielleicht findet sich hier ja jemand der zu den Themen (Pop before smtp, TLS) noch ein paar Infos hat…
bnice_6017
Member II

Re: Probleme bei der eMail-Konfiguration

Würde das Thema gerne nochmal aufnehmen, teste gerade Version 3.3 (ja ich weiss, 3.4 ist auch schon draussen…) und scheitere noch am Mail verschicken.
Hatte erst die Mail-Konfig in der alfresco-global.properties, hab's aber dort wieder rausgenommen und ordnungsgemäß in die extension\subsystems\email\outboundSMTP\ properties bzw. xml eingetragen.
Jetzt rödelt "Please wait" ewig lange beim Einladen eines Mitarbeiters in Share, aber nichts passiert… :-(
Werde nochmal ein paar Tests mehr machen, um den Fehler einzugrenzen…

UPDATE:

Mindestens zwei Fehler gefunden:
a) no recipients found -> beim AD-User war keine eMail hinterlegt…  Smiley Surprisedops:
b) cannot connect to smtp.alfresco.com -> es scheint eine andere Konfigdatei zu greifen, nur welche…?  :?:
cbaus_8800
Member II

Re: Probleme bei der eMail-Konfiguration

Hallo,

eventl. steht noch was in der alfresc-global.properties?

Das sollte dir aber auf jeden Fall helfen ;-)



grep -i -r 'smtp.alfresco.com' /opt/alfresco-3.3

lg
Chris
mont
Member II

Re: Probleme bei der eMail-Konfiguration

Hallo,

ich bin ganz neu hier. Ich habe mir in einem virtuellen Ubuntu 10.04 die aktuellste Alfresco Version 3.4b installiert und möchte das System im Rahmen meiner Abschlussarbeit testen.

Nach der Einrichtung einer eigenen Site und dem Anlegen einiger Benutzer wollte ich diese nun zu der Seite einladen. Als dies nur die Fehlermeldung "0 invites send out, 1 failure" brachte, habe ich dazu folgende Informationen gefunden.
http://forums.alfresco.com/en/viewtopic.php?f=8&t=27483
http://wiki.alfresco.com/wiki/E-mail_Configuration
http://blogs.system-worx.de/kejr/2009/03/02/mail-an-und-von-alfresco/

Die Wiki-Seite  scheint nicht mehr ganz aktuell zu sein. Mittels:
locate outbound
glaube ich den Pfad für rausgehenden E-Mails in Alfresco 3.4b unter:
/opt/alfresco-3.4.b/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/subsystems/email/OutboundSMTP/
gefunden zu haben und habe die Einstellungen zusätzlich entsprechend der Wiki-Seite gesetzt. Aber auch dies brachte nicht den erwünschten Erfolg:

Caused by: org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1

Die Nutzer besitzen eine gültige E-Mail-Adresse, ich bin wie im Wiki beschrieben vorgegangen und nach Änderungen der Konfigurationsdateien habe ich Alfresco neugestartet. Habt ihr eine Idee für mich?
mont
Member II

Re: Probleme bei der eMail-Konfiguration

Ich habe einen Postfix-Server aufgesetzt, wie auf http://wiki.ubuntuusers.de/postfix beschrieben, um zu testen ob eine E-Mail-Übertragung an smtp.googlemail.com überhaupt funktioniert und ja, das tut es. Das Gleiche im virtuellen Linux probiert und es endet mit der bekannten Fehlermeldung "Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1". Ich habe daher nochmal ein Alfresco 3.4a lokal bei mir installiert und bin wieder einen Schritt weiter gekommen.

Wenn ich die /opt/alfresco-3.4.b/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/subsystems/email/OutboundSMTP/
so modifiziere:

mail.host=smtp.gmail.com
mail.port=587
mail.username=ich@googlemail.com
mail.password=pw
mail.encoding=UTF-8
#mail.from.default=ich@googlemail.com
mail.protocol=smtps
mail.smtps.starttls.enable=true
mail.smtps.auth=true

#use these properties to send test message during start of subsystem
mail.testmessage.send=false
mail.testmessage.to=
mail.testmessage.subject=Outbound SMTP
mail.testmessage.text=The Outbound SMTP email subsystem is working.

dann erhalte ich die Fehlermeldung:
17:23:33,289 ERROR [org.springframework.extensions.webscripts.AbstractRuntime] Exception from executeScript - redi
recting to status template error: 11160001 Wrapped Exception (with status template): 11160007 Failed to execute sc
ript 'classpath*:alfresco/templates/webscripts/org/alfresco/repository/site/invitation/invitation.post.json.js': 1
1160006 Failed to signal transition sendInvite from workflow task jbpm$1.
org.springframework.extensions.webscripts.WebScriptException: 11160001 Wrapped Exception (with status template): 1
1160007 Failed to execute script 'classpath*:alfresco/templates/webscripts/org/alfresco/repository/site/invitation
/invitation.post.json.js': 11160006 Failed to signal transition sendInvite from workflow task jbpm$1.
        at org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.jav
a:742)
        at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:167)
        at org.alfresco.repo.web.scripts.RepositoryContainer$2.execute(RepositoryContainer.java:373)

Caused by: org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Exception reading response;
  nested exception is:
        javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
        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.MessagingException: Exception reading response;
  nested exception is:
        javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
        at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1462)
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1260)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
        at javax.mail.Service.connect(Service.java:275)
        at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:388)
        … 148 more

Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
        at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(InputRecord.java:523)
        at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:355)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:789)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:744)
        at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
        at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:97)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
        at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:75)
        at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1440)
        … 152 more

Folgende Einstellungen brachte den erhofften Durchbruch …
mail.host=smtp.gmail.com
mail.port=465
mail.username=ich@googlemail.com
mail.password=pw
mail.encoding=UTF-8
#mail.from.default=ich@googlemail.com
mail.protocol=smtps
mail.smtps.starttls.enable=true
mail.smtps.auth=true

Eine Lösung für VirtualBox ist das leider noch nicht, aber immerhin, ich kann endlich Einladungen verschicken!  Smiley Happy