You have the right idea. The question I have is, what do you want to trigger this code? Your method looks right (except for the method name, which should look more like "alfrescoSendMail"). But what class is your method in?
* Is this an action executer that you are calling from a folder rule? (See Actions Tutorial).
* Or is this a web script controller that you are invoking via REST? (See Web Script Tutorial).
* Or is this a behavior that you have bound to a policy to trigger when something happens to a node of a certain type or with a certain aspect? (See Behavior Tutorial).
Once you have decided what will trigger your email, you can put your method in a class that extends the appropriate parent class, then you can package your JAR up as an AMP and use the MMT to merge it with your Alfresco WAR (See Maven SDK Tutorial).
The Java service you used in your code is intended to be used in the Alfresco process, and not from outside.
In order to achieve what you need, I would use the webscript way (the link Jeff shared) and then, with the method exposed, use anything you want to execute it via REST, passing on the parameters you already have.
Your custom webscript would have the code you shared as part of it.
Either way it is Java code, so I don't think one is easier or harder than the other. From an architectural perspective it seems to me that Alfresco might be the right place to send the email because it is also the system receiving the email. On the other hand, if your JHipster app needs to do some processing, then maybe your JHipster app should send the email.
If you decide to send the email from Alfresco you have to decide what triggers the email to be sent. If you need it to be triggered from your JHipster app, then write a web script and trigger it by calling the webscript's URL from the JHipster app.
If you decide to send the email from JHipster, use CMIS to grab the files, then send it from there using whatever Java API you want.