Notification par email

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

Notification par email

Bonjour

Je rencontre une difficulté sur la notification par email via un règle déposé sur un dossier.

en premier lieu voici le paramétrage du outbound dans le fichier : alfresco-global.properties

### License location ###
dir.license.external=/home/app/alfresco42d

### Email Outbound ###
mail.host=smtp.gmail.com
mail.port=465
mail.username=xxxxxxx@gmail.com
mail.password=xxxxxxxxxx
mail.protocol=smtps
mail.smtps.starttls.enable=true
mail.smtps.auth=true
mail.encoding=UTF-8


1. Je n'ai pas de soucis pour faire une invitation d'une personne à partie d'un site. Le email est bien envoyé à l'utilisateur.
Et celui-ci peut répondre en retour au lien via le message reçu pour s'abonner au site.

2. Dans la librairie su site, je mets en place une règle sur le dossier "A".

3. La règle contient les information suivante :
   a. Quand : Des éléments sont créés ou entrent dans ce dossier
   b. Si tous les critères sont remplis : Tous les éléments
   c. Executer une action : Envoyer un email
   d. paramétrage de l'email choix d'un utilisateur pour réception de la notification, puis mise en place d'un template de modèle à partir du dictionnaire de données : notify_user_email_fr.html.ftl
Pour finir validation de la règle en ayant coché : Appliquer la règle au sous-dossier.

Voilà pour la mise en place.

Maintenant, je teste la notification.
Je dépose dans le dossier "A" un document : test.txt

Résultat : Aucun email n'arrive à l'utilisateur.

Message dans le fichier de log catalina.out dans le dossier : HOME_ALFRESCO/tomcat/logs/

     2013-11-11 19:41:33,133  ERROR [freemarker.runtime] [http-apr-8080-exec-1] Template processing error: "Expression person is undefined on line 38, column 57 in workspace://SpacesStore/c21134fe-da56-4ff8-94b1-194bde03f6e0."
    
    Expression person is undefined on line 38, column 57 in workspace://SpacesStore/c21134fe-da56-4ff8-94b1-194bde03f6e0.
    The problematic instruction:
    ———-
    ==> ${person.properties.firstName} [on line 38, column 55 in workspace://SpacesStore/c21134fe-da56-4ff8-94b1-194bde03f6e0]
    ———-
    
    Java backtrace for programmers:
    ———-
    freemarker.core.InvalidReferenceException: Expression person is undefined on line 38, column 57 in workspace://SpacesStore/c21134fe-da56-4ff8-94b1-194bde03f6e0.
            at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:125)
            at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:135)
            at freemarker.core.Dot._getAsTemplateModel(Dot.java:78)
            at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
            at freemarker.core.Dot._getAsTemplateModel(Dot.java:74)
            at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
            at freemarker.core.Expression.getStringValue(Expression.java:93)
            at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
            at freemarker.core.Environment.visit(Environment.java:221)
            at freemarker.core.MixedContent.accept(MixedContent.java:92)
            at freemarker.core.Environment.visit(Environment.java:221)
            at freemarker.core.Environment.process(Environment.java:199)
            at org.alfresco.repo.template.FreeMarkerProcessor.process(FreeMarkerProcessor.java:218)
            at org.alfresco.repo.processor.TemplateServiceImpl.processTemplate(TemplateServiceImpl.java:177)
            at org.alfresco.repo.processor.TemplateServiceImpl.processTemplate(TemplateServiceImpl.java:240)
            at org.alfresco.repo.action.executer.MailActionExecuter$3.prepare(MailActionExecuter.java:847)
            at org.alfresco.repo.action.executer.MailActionExecuter.prepareEmail(MailActionExecuter.java:908)
            at org.alfresco.repo.action.executer.MailActionExecuter.prepareEmails(MailActionExecuter.java:540)
            at org.alfresco.repo.action.executer.MailActionExecuter.executeImpl(MailActionExecuter.java:458)
            at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:258)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at org.alfresco.repo.management.subsystems.SubsystemProxyFactory$1.invoke(SubsystemProxyFactory.java:72)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
            at com.sun.proxy.$Proxy316.execute(Unknown Source)
            at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:838)
            at org.alfresco.repo.action.executer.CompositeActionExecuter.executeImpl(CompositeActionExecuter.java:66)
            at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:258)
            at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:838)
            at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionServiceImpl.java:738)
            at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:572)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
            at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:34)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:46)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:161)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
            at com.sun.proxy.$Proxy42.executeAction(Unknown Source)
            at org.alfresco.repo.rule.RuleServiceImpl.executeAction(RuleServiceImpl.java:1250)
            at org.alfresco.repo.rule.RuleServiceImpl.executeRule(RuleServiceImpl.java:1244)
            at org.alfresco.repo.rule.RuleServiceImpl.executePendingRule(RuleServiceImpl.java:1190)
            at org.alfresco.repo.rule.RuleServiceImpl.executePendingRulesImpl(RuleServiceImpl.java:1119)
            at org.alfresco.repo.rule.RuleServiceImpl.executePendingRules(RuleServiceImpl.java:1092)
            at org.alfresco.repo.rule.RuleTransactionListener.beforeCommit(RuleTransactionListener.java:57)
            at org.alfresco.repo.transaction.AlfrescoTransactionSupport$TransactionSynchronizationImpl.doBeforeCommit(AlfrescoTransactionSupport.java:737)
            at org.alfresco.repo.transaction.AlfrescoTransactionSupport$TransactionSynchronizationImpl.doBeforeCommit(AlfrescoTransactionSupport.java:717)
            at org.alfresco.repo.transaction.AlfrescoTransactionSupport$TransactionSynchronizationImpl.beforeCommit(AlfrescoTransactionSupport.java:683)
            at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:95)
            at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:927)
            at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:737)
            at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
            at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)
            at org.alfresco.util.transaction.SpringAwareUserTransaction.commit(SpringAwareUserTransaction.java:472)
            at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:474)
            at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:491)
            at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:529)
            at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:341)
            at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:378)
            at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
            at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:132)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
            at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:61)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
            at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
            at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
            at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
            at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
            at java.lang.Thread.run(Thread.java:724)


l'erreur se trouve sur les premières lignes :

     2013-11-11 19:41:33,133  ERROR [freemarker.runtime] [http-apr-8080-exec-1] Template processing error: "Expression person is undefined on line 38, column 57 in workspace://SpacesStore/c21134fe-da56-4ff8-94b1-194bde03f6e0."
    
    Expression person is undefined on line 38, column 57 in workspace://SpacesStore/c21134fe-da56-4ff8-94b1-194bde03f6e0.
    The problematic instruction:
    ———-
    ==> ${person.properties.firstName} [on line 38, column 55 in workspace://SpacesStore/c21134fe-da56-4ff8-94b1-194bde03f6e0]
    ———-


J'ai comme l'impression qu'il y a eu une régression lors du passage en 4.2.d non corrigé 4.2.e, alors qu'il me semble que celle-ci a été corrigé dans JIRA en version 4.2.0 entreprise.
Mais je ne retouve pas le post sous JIRA, désolé.

Si quelqu'un peut confirmer mon message …
et occasionnelement comment corriger le problème. je suis preneur…

EDIT :
Le problème n'existe pas si je n'ai que du texte dans mon email. Le problème est bien du aux expressions freemarker.
2 Replies
legaulois
Active Member

Re: Notification par email

Bonjour Jeanjot,

j'ai également constaté ce problème sur une installation 4.2E sous Windows 2008.

Pour valider le test, le mail est bien envoyé si le contenu du mail n'est pas basé sur un template de mail mais du texte uniquement.

J'ai constaté aussi que lors de création de tâches assignées à un utilisateur (par exemple dans une liste de données), l'utilisateur ne recevait pas de notification par mail.

Cdt,
jeanjot
Active Member

Re: Notification par email

Merci de ton retour.
Ce qui est dommage c'est qu'il semble que cette régression a été corrigée dans le version Entreprise mais non reportée dans le version Community.

Pas cool ….

Alfresco pourrait nous mettre à disposition une version 4.2.f ;-)

a+

Jeanjot