}
return internalServerError();
}
private static void sendTransferRequestMail(ProjectTransfer pt) {
HtmlEmail email = new HtmlEmail();
try {
String acceptUrl = pt.getAcceptUrl();
String message = Messages.get("transfer.message.hello", pt.destination) + "\n\n"
+ Messages.get("transfer.message.detail", pt.project.name, pt.newProjectName, pt.project.owner, pt.destination) + "\n"
+ Messages.get("transfer.message.link") + "\n\n"
+ acceptUrl + "\n\n"
+ Messages.get("transfer.message.deadline") + "\n\n"
+ Messages.get("transfer.message.thank");
email.setFrom(Config.getEmailFromSmtp(), pt.sender.name);
email.addTo(Config.getEmailFromSmtp(), "Yobi");
User to = User.findByLoginId(pt.destination);
if (!to.isAnonymous()) {
email.addBcc(to.email, to.name);
}
Organization org = Organization.findByName(pt.destination);
if (org != null) {
List<OrganizationUser> admins = OrganizationUser.findAdminsOf(org);
for(OrganizationUser admin : admins) {
email.addBcc(admin.user.email, admin.user.name);
}
}
email.setSubject(String.format("[%s] @%s wants to transfer project", pt.project.name, pt.sender.loginId));
email.setHtmlMsg(Markdown.render(message));
email.setTextMsg(message);
email.setCharset("utf-8");
email.addHeader("References", "<" + acceptUrl + "@" + Config.getHostname() + ">");
email.setSentDate(pt.requested);
Mailer.send(email);
String escapedTitle = email.getSubject().replace("\"", "\\\"");
String logEntry = String.format("\"%s\" %s", escapedTitle, email.getBccAddresses());
play.Logger.of("mail").info(logEntry);
} catch (Exception e) {
Logger.warn("Failed to send a notification: " + email + "\n" + ExceptionUtils.getStackTrace(e));
}
}