12-28-2018 01:58 AM
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
12-28-2018 06:32 AM
Hi Max Lich,
Are configure E-mail server configuration in config file?
If not, Please configure like this.
Thanks,
Vidhi
12-28-2018 07:39 AM
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.
12-31-2018 01:22 AM
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.
01-09-2019 02:32 AM
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.
01-09-2019 03:31 AM
do you get this INFO log "Ignoring email send error:" with the error?
01-09-2019 08:16 AM
I did not quite understand you, but, as I checked, an exception message is written to the 'error' variable.
01-15-2019 12:51 AM
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
Explore our Alfresco products with the links below. Use labels to filter content by product module.