E-mail Benachrichtigung

cancel
Showing results for 
Search instead for 
Did you mean: 
dmc
Active Member

E-mail Benachrichtigung

Habe folgendes Problem. Wie mache ich das folgendes funktioniert: Wenn jemand den Inhalt ändert oder per Webform Inhalt der Webseite hinzufügen möchte, tritt folgender Workflow auf. Eine bestimmte Person muss das ganze absegnen bzw. genehmigen. Diese Person bekommt das ganze Angezeigt in Ihrem Konto unter New task to do. Das funktioniert sehr gut. Jetzt zum eigentlichen Problem. Ich möchte gerne das sobald bei einem ein "New task to do" eingereicht ist das diese Person automatisch per email benachrichtigt wird und ihr so mitgeteilt wird das sie einen neuen Task to do in ihrem Konto hat. Wie mache ich das?? Kann mir da bitte jemand weiterhelfen.
Danke.

MfG
Clueless
22 Replies
dmc
Active Member

Re: E-mail Benachrichtigung

Hallo Clueless,

ich kenne den WebCMS Workflow jetzt leider nicht so genau und gehe jetzt davon aus, dass der Workflow auch auf jBPM basiert. Eine mögliche Lösung wäre das Versenden einer E-Mail in den jBPM Worklow "einzuweben". Bei einem jBPM Task Node kann des über Event-Handler gemacht werden. Dort kann dann z.B. bei dem "Task Todo"-Node in einem "node-enter"-Event ein per JavaScript eine E-Mail versendet werden. Das JavaScript würde in etwa folgendermassen aussehen:
var mail = actions.create("mail");
            mail.parameters.to = initiator.properties["cm:email"];
            mail.parameters.subject = "Just Do It " + bpm_workflowDescription;
            mail.parameters.from = bpm_assignee.properties["cm:email"];
            mail.parameters.text = "just do it";
            mail.execute(bpm_package);
Grüsse,
devylon
dmc
Active Member

Re: E-mail Benachrichtigung

Ich habe das selbe Problem. Eingerichtet habe ich den Server 1.4. nach der Alfresco Wiki. trotzdem erhalte ich:
21.06.2007 16:46:30 org.apache.catalina.startup.Catalina start
INFO: Server startup in 32750 ms
16:48:32,328 ERROR [action.executer.MailActionExecuter] Failed to send email to
null
org.springframework.mail.MailSendException: Mail server connection failed; neste
d exception is javax.mail.MessagingException: Could not connect to SMTP host: lo
calhost, port: 25;
  nested exception is:
        java.net.SocketException: Software caused connection abort: connect
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port:
25;
  nested exception is:
        java.net.SocketException: Software caused connection abort: connect
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1213)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:31
1)
        at javax.mail.Service.connect(Service.java:233)
        at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailS
enderImpl.java:373)
        at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSen
derImpl.java:326)
        at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSen
derImpl.java:341)
        at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSen
derImpl.java:330)
        at org.alfresco.repo.action.executer.MailActionExecuter.executeImpl(Mail
ActionExecuter.java:291)
        at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(
ActionExecuterAbstractBase.java:112)
        at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(Acti
onServiceImpl.java:524)
        at org.alfresco.repo.action.executer.CompositeActionExecuter.executeImpl
(CompositeActionExecuter.java:64)
        at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(
ActionExecuterAbstractBase.java:112)
        at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(Acti
onServiceImpl.java:524)
        at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionSe
rviceImpl.java:456)
        at org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl$ActionE
xecutionWrapper$1.doWork(AsynchronousActionExecutionQueueImpl.java:296)
        at org.alfresco.repo.transaction.TransactionUtil.executeInTransaction(Tr
ansactionUtil.java:168)
        at org.alfresco.repo.transaction.TransactionUtil.executeInNonPropagating
UserTransaction(TransactionUtil.java:108)
        at org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl$ActionE
xecutionWrapper.run(AsynchronousActionExecutionQueueImpl.java:286)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:650)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:675)
        at java.lang.Thread.run(Thread.java:595)
16:48:32,359 ERROR [action.executer.MailActionExecuter] Failed to send email to
null
org.springframework.mail.MailSendException: Mail server connection failed; neste
d exception is javax.mail.MessagingException: Could not connect to SMTP host: lo
calhost, port: 25;
  nested exception is:
        java.net.SocketException: Software caused connection abort: connect
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port:
25;
  nested exception is:
        java.net.SocketException: Software caused connection abort: connect
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1213)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:31
1)
        at javax.mail.Service.connect(Service.java:233)
        at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailS
enderImpl.java:373)
        at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSen
derImpl.java:326)
        at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSen
derImpl.java:341)
        at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSen
derImpl.java:330)
        at org.alfresco.repo.action.executer.MailActionExecuter.executeImpl(Mail
ActionExecuter.java:291)
        at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(
ActionExecuterAbstractBase.java:112)
        at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(Acti
onServiceImpl.java:524)
        at org.alfresco.repo.action.executer.CompositeActionExecuter.executeImpl
(CompositeActionExecuter.java:64)
        at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(
ActionExecuterAbstractBase.java:112)
        at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(Acti
onServiceImpl.java:524)
        at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionSe
rviceImpl.java:456)
        at org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl$ActionE
xecutionWrapper$1.doWork(AsynchronousActionExecutionQueueImpl.java:296)
        at org.alfresco.repo.transaction.TransactionUtil.executeInTransaction(Tr
ansactionUtil.java:168)
        at org.alfresco.repo.transaction.TransactionUtil.executeInNonPropagating
UserTransaction(TransactionUtil.java:108)
        at org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl$ActionE
xecutionWrapper.run(AsynchronousActionExecutionQueueImpl.java:286)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:650)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:675)
        at java.lang.Thread.run(Thread.java:595)
__________________
http://www.ksvj.de
dmc
Active Member

Re: E-mail Benachrichtigung

Nachtrag:

Hat denn irgendwer es schon mal hinbekommen mit Alfresco 1.4 Mail zu versenden? Wenn ja, wäre ich über eine Liste der Files + Ort wo diese zu speichern sind überglücklich. Die Alfresco Wiki gibt leider nur unzureichend Auskunft.

Chris
__________________
http://www.ksvj.de
Mit Zitat antworten
dmc
Active Member

Re: E-mail Benachrichtigung

hi…

ich kenn die 1.4er version leider nicht. In den 2.0.x Versionen gibt es in der Datei
alfresco/WEB-INF/classes/alfresco/core-services-context.xml
ein Spring-Bean mit dem Namen "mailService". Dort sieht man, dass der mail.host und mail.port über eine Umgebungsvariable gesetzt werden müssen. Entwder könnte man diese der JVM per -Dmail.host=mail.xyz.de -Dmail.port=25 mitgeben, oder diese Parameter in eine .properties Datei packen und von Spring einlesen lassen.

gtx,
devylon
dmc
Active Member

Re: E-mail Benachrichtigung

In der Datei WEB-INF/classes/alfresco/repository.properties kann der Mailserver eingetragen werden.

Robert
dmc
Active Member

Re: E-mail Benachrichtigung

In der Datei WEB-INF/classes/alfresco/repository.properties kann der Mailserver eingetragen werden.

Robert
…typischerweise würde man das allerdings in der entsprechenden Extensions-Datei alfresco/extension/custom-respository.properties durchführen, da damit neue Versionen von alfresco.war problemloser eingespielt werden können. Der genaue Ort richtet sich nach dem eingesetzten Server, also /jboss/server/default/conf/alfresco/extension bei JBoss und /tomcat/shared/classes/alfresco/extension bei Tomcat.

Grüsse
drhilarius
dmc
Active Member

Re: E-mail Benachrichtigung

Was verwendet Ihr für einen Mailserver? Ich verwende Debian und bin nach der Suche nach einem Passenden.

Viele Grüsse
Andreas
dmc
Active Member

Re: E-mail Benachrichtigung

Hallo devylon,

Habe leider keine Ahnung von der Syntax der JAVA-Programmierung. Kannst du mir kurz das "einweben" erläutern? Das Script müsste meiner Meinung nach in folgende Datei eingefügt werden:
E:\alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\workflow\adhoc_processdefinit ion.xml

<?xml version="1.0" encoding="UTF-8"?>

<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wf:adhoc">

<swimlane name="initiator"/>

<start-state name="start">
<task name="wf:submitAdhocTask" swimlane="initiator"/>
<transition name="" to="adhoc"/>
</start-state>

<swimlane name="assignee">
<assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAss ignment">
<actor>#{bpm_assignee}</actor>
</assignment>
</swimlane>

<task-node name="adhoc">
<task name="wf:adhocTask" swimlane="assignee">
<event type="task-create">
<script>
if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate;
if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority;
</script>
</event>
</task>
<transition name="" to="completed">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJav aScript">
<script>
if (wf_notifyMe)
{
var mail = actions.create("mail");
mail.parameters.to = initiator.properties.email;
mail.parameters.subject = "Adhoc Task " + bpm_workflowDescription;
mail.parameters.from = bpm_assignee.properties.email;
mail.parameters.text = "It's done";
mail.execute(bpm_package);
}
</script>
</action>
</transition>
</task-node>

<task-node name="completed">
<task name="wf:completedAdhocTask" swimlane="initiator"/>
<transition name="" to="end"/>
</task-node>

<end-state name="end"/>

</process-definition>
Danke stepor
Zitat von devylon  Beitrag anzeigen
Hallo Clueless,

ich kenne den WebCMS Workflow jetzt leider nicht so genau und gehe jetzt davon aus, dass der Workflow auch auf jBPM basiert. Eine mögliche Lösung wäre das Versenden einer E-Mail in den jBPM Worklow "einzuweben". Bei einem jBPM Task Node kann des über Event-Handler gemacht werden. Dort kann dann z.B. bei dem "Task Todo"-Node in einem "node-enter"-Event ein per JavaScript eine E-Mail versendet werden. Das JavaScript würde in etwa folgendermassen aussehen:
var mail = actions.create("mail");
            mail.parameters.to = initiator.properties["cm:email"];
            mail.parameters.subject = "Just Do It " + bpm_workflowDescription;
            mail.parameters.from = bpm_assignee.properties["cm:email"];
            mail.parameters.text = "just do it";
            mail.execute(bpm_package);
Grüsse,
devylon
dmc
Active Member

Re: E-mail Benachrichtigung

Die Lösung steht quasi schon da:
<transition name="" to="completed">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJav aScript">
<script>
if (wf_notifyMe)
{
var mail = actions.create("mail");
mail.parameters.to = initiator.properties.email;
mail.parameters.subject = "Adhoc Task " + bpm_workflowDescription;
mail.parameters.from = bpm_assignee.properties.email;
mail.parameters.text = "It's done";
mail.execute(bpm_package);
}
</script>
</action>
</transition>
In dem Beispiel ist der E-Mail Versand an einen Zustandsübergang geknüpft, sprich Transition. Verwendet wird hier die Alfresco JavaScript API.