Hi all!
I need to send emails, and I use a service task for it:
<serviceTask id="SendEmail_1" name="Sending a notification by email" activiti:type="mail">
<documentation></documentation>
<extensionElements>
<activiti:field name="to">
<activiti:expression><![CDATA[${to}]]></activiti:expression>
</activiti:field>
<activiti:field name="subject">
<activiti:expression><![CDATA[${subject}]]></activiti:expression>
</activiti:field>
<activiti:field name="text">
<activiti:expression><![CDATA[${body}]]></activiti:expression>
</activiti:field>
<activiti:field name="ignoreException">
<activiti:string><![CDATA[true]]></activiti:string>
</activiti:field>
<activiti:field name="charset">
<activiti:string><![CDATA[utf8]]></activiti:string>
</activiti:field>
</extensionElements>
</serviceTask>
I also need to catch the errors that occur when sending mail. In the user guide, I read that in order to get a description of the error, you need to read from the variables of the process the value of the variable "exceptionVariableName". As you can see above, I added this to the service task, but so far I have not seen that it works. I tried to give him non-existent addresses of recipients, but there was no error. Does it even work? When does it work? Or is there another mechanism for getting error descriptions?
PS I use Activiti 6.0.0.
PSS I tried to add the block below in the 'extensionElements' tag:
<activiti:field name="exceptionVariableName">
<activiti:string><![CDATA[error]]></activiti:string>
</activiti:field>
And it also did not help me (for example, if the recipients are not correct).
PSSS I specified the wrong smtp server host (while creating the process configuration bean), and I got the error description (the Java code for receiving it is presented below), but it is uninformative.
public void logEmailSending(DelegateExecution execution) {
Object error = execution.getVariable("error");
if (error != null)
logger.error("An error occurred while sending the email: " + error);
}
it almost solved my problem, but, as I wrote above, I would like to be more concrete by mistake, and it still does not catch the error in the recipients addresses
Hi Max Lich,
Are configure E-mail server configuration in config file?
If not, Please configure like this.
Thanks,
Vidhi
Of course, I have already done it. My emails are being sent and received successfully. But i also want to catch errors if errors occured.
Have you already create variable named "error" in your execution? The the logic only checks if the process variable (that holds exceptionVariableName
) is present in the execution, the mail task will not create a new variable for you.
However, how i wrote above, it had created the variable with specified name and had written the error text to this variable. The only thing is that this text is not very informative.
do you get this INFO log "Ignoring email send error:" with the error?
I did not quite understand you, but, as I checked, an exception message is written to the 'error' variable.
what message do you get when you print your "error" variable?
The Mail Activity always writes a message ("Could not send e-mail in execution " followed by the executionId) in the exception variable (only if the exception is EmailException) but it logs the specific exception info in the console. so you'll have to create your own service to implement such exception/variable specific logic.
hope it helped
Ask for and offer help to other Alfresco Process Services and Activiti Users and members of the Alfresco team.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.