...
We have now completed this part of the picture:
Sending the email
What we need to do before the solution is completed is to actually send the email with the mail body we generated and stored as a file. In the previous part we did this with a File consumer, that we manually added to the CamelContext. We can do this quite easily with the routing.
Code Block | ||||
---|---|---|---|---|
| ||||
import org.apache.camel.builder.RouteBuilder;
public class ReportIncidentRoutes extends RouteBuilder {
public void configure() throws Exception {
// first part from the webservice -> file backup
from("direct:start")
.setHeader(FileComponent.HEADER_FILE_NAME, bean(FilenameGenerator.class, "generateFilename"))
.to("velocity:MailBody.vm")
.to("file://target/subfolder");
// second part from the file backup -> send email
from("file://target/subfolder")
// set the subject of the email
.setHeader("subject", constant("new incident reported"))
// send the email
.to("smtp://someone@localhost?password=secret&to=incident@mycompany.com");
}
}
|
The last 3 lines of code does all this. It adds a file consumer from("file://target/subfolder"), sets the mail subject, and finally send it as an email.
The DSL is really powerful where you can express your routing integration logic.
So we completed the last piece in the picture puzzle with just 3 lines of code.
We have now completed the picture:
#Resources
Attachments patterns .*part-four.zip
...