public void trackBackAdded(TrackBackEvent event) {
sendNotification(event.getTrackBack());
}
private void sendNotification(TrackBack trackBack) {
Blog blog = trackBack.getBlogEntry().getBlog();
SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy HH:mm:ss z");
sdf.setTimeZone(blog.getTimeZone());
String subject = MailUtils.getTrackbackPrefix(blog, trackBack.getState()) + " " + trackBack.getTitle();
String message = "TrackBack from <a href=\"" + trackBack.getUrl() + "\">" + trackBack.getBlogName() + "</a> on " + sdf.format(trackBack.getDate());
message += " in response to " + trackBack.getBlogEntry().getTitle();
message += "\n\n<br><br>";
message += trackBack.getExcerpt();
message += "\n\n<br><br>";
message += "<a href=\"" + trackBack.getPermalink() + "\">Permalink</a>";
SecurityTokenValidator validator = new SecurityTokenValidatorImpl();
if (trackBack.isPending()) {
message += " | ";
message += "<a href=\"" + blog.getUrl() + validator.generateSignedQueryString("manageResponses.secureaction",
createMap("response", trackBack.getGuid(), "submit", "Approve"), blog.getXsrfSigningSalt()) + "\">Approve</a>";
message += " | ";
message += "<a href=\"" + blog.getUrl() + validator.generateSignedQueryString("manageResponses.secureaction",
createMap("response", trackBack.getGuid(), "submit", "Reject"), blog.getXsrfSigningSalt()) + "\">Reject</a>";
}
message += " | ";
message += "<a href=\"" + blog.getUrl() + validator.generateSignedQueryString("manageResponses.secureaction",
createMap("response", trackBack.getGuid(), "submit", "Remove"), blog.getXsrfSigningSalt()) + "\">Remove</a>";
Collection to = getEmailAddresses(trackBack);
try {
MailUtils.sendMail(MailUtils.createSession(), blog, to, subject, message);