package notifiers;
import java.util.Map;
import java.net.URLEncoder;
import play.*;
import play.mvc.*;
import play.i18n.Messages;
import play.libs.Crypto;
import models.Ldap;
// TODO Move URL, fullName and address generation into User class
public class Mails extends Mailer {
static String encode(String s) throws Exception {
return URLEncoder.encode(s, "UTF-8");
}
public static void invite(
String community,
String firstName,
String lastName,
String eMail,
String sponsorLogin,
String server,
int port
) throws Exception {
String contentPrologue = "";
if (!"admin".equals(sponsorLogin)) {
Map <String, String> sponsor = Ldap.getConnectedUserInfos(sponsorLogin);
String sponsorFullName = sponsor.get("firstName") + " "
+ sponsor.get("lastName");
setReplyTo(sponsorFullName + " <" + sponsor.get("mail") +">");
contentPrologue += Messages.get("invitation_prologue", sponsorFullName, community);
}
setFrom(community + " <noreply@" + server + ">");
setSubject(Messages.get("invitation_subject", community));
String recipient = firstName + " " + lastName + " <" + eMail + ">";
addRecipient(recipient);
String url = "http://" + server
+ ((port==80)? "" : ":" + port)
+ "/registration?firstname=" + encode(firstName)
+ "&lastname=" + encode(lastName)
+ "&email=" + encode(eMail)
+ "&signature=" + Crypto.sign(firstName + lastName + eMail);
String contentPassword = Messages.get("invitation_password", url);
String contentKeep = Messages.get("invitation_keep");
send(contentPrologue, contentPassword, contentKeep);
}
}