diff --git a/pom.xml b/pom.xml
index ef80d41d..8c8a2148 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,13 +51,12 @@
1.7
-
1.8.8-R0.1-SNAPSHOT
- AuthMe-${project.version}
+ ${project.name}
.
@@ -93,12 +92,6 @@
false
false
-
-
-
- com.sun:*
-
-
org.mcstats
@@ -108,38 +101,6 @@
com.google.gson
fr.xephi.authme.libs.gson
-
- com.zaxxer.hikari
- fr.xephi.authme.libs.hikari
-
-
- org.slf4j
- fr.xephi.authme.libs.slf4j
-
-
- javax.mail
- fr.xephi.authme.libs.mail
-
-
- javax.activation
- fr.xephi.authme.libs.mail.activation
-
-
- com.sun.mail
- fr.xephi.authme.libs.mail
-
-
- com.sun.activation
- fr.xephi.authme.libs.mail.activation
-
-
- com.maxmind.geoip
- fr.xephi.authme.libs.geoip
-
-
- net.ricecode.similarity
- fr.xephi.authme.libs.similarity
-
@@ -240,19 +201,18 @@
com.sun.mail
- mailapi
+ javax.mail
1.5.4
compile
true
- com.sun.mail
- smtp
- 1.5.4
+ org.apache.commons
+ commons-email
+ 1.4
compile
true
-
com.google.code.gson
diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java
index 893814ac..d8d80afc 100644
--- a/src/main/java/fr/xephi/authme/AuthMe.java
+++ b/src/main/java/fr/xephi/authme/AuthMe.java
@@ -72,7 +72,9 @@ public class AuthMe extends JavaPlugin {
/** Defines the current AuthMeReloaded version name. */
private static final String PLUGIN_VERSION_NAME = "5.1-SNAPSHOT";
/** Defines the current AuthMeReloaded version code. */
- private static final int PLUGIN_VERSION_CODE = 100; // Increase this number by one when an update is released
+ private static final int PLUGIN_VERSION_CODE = 100; // Increase this number
+ // by one when an update
+ // is released
private static AuthMe plugin;
private static Server server;
@@ -114,14 +116,14 @@ public class AuthMe extends JavaPlugin {
private boolean canConnect = true;
public boolean canConnect() {
- return canConnect;
- }
+ return canConnect;
+ }
- public void setCanConnect(boolean canConnect) {
- this.canConnect = canConnect;
- }
+ public void setCanConnect(boolean canConnect) {
+ this.canConnect = canConnect;
+ }
- public static AuthMe getInstance() {
+ public static AuthMe getInstance() {
return plugin;
}
@@ -186,18 +188,20 @@ public class AuthMe extends JavaPlugin {
Graph databaseBackend = metrics.createGraph("Database backend");
// Custom graphs
- if(Settings.messageFile.exists()) {
+ if (Settings.messageFile.exists()) {
messagesLanguage.addPlotter(new Metrics.Plotter(Settings.messagesLanguage) {
+
@Override
public int getValue() {
- return 1;
+ return 1;
}
});
}
databaseBackend.addPlotter(new Metrics.Plotter(Settings.getDataSource.toString()) {
+
@Override
public int getValue() {
- return 1;
+ return 1;
}
});
@@ -335,17 +339,19 @@ public class AuthMe extends JavaPlugin {
pm.registerEvents(new AuthMeEntityListener(this), this);
pm.registerEvents(new AuthMeServerListener(this), this);
- // TODO: This is moved to CommandManager.registerCommands() handled by AuthMe.onCommand() -- timvisee
+ // TODO: This is moved to CommandManager.registerCommands() handled by
+ // AuthMe.onCommand() -- timvisee
// Register commands
- //getCommand("authme").setExecutor(new AdminCommand(this));
- //getCommand("register").setExecutor(new RegisterCommand(this));
- //getCommand("login").setExecutor(new LoginCommand(this));
- //getCommand("changepassword").setExecutor(new ChangePasswordCommand(this));
- //getCommand("logout").setExecutor(new LogoutCommand(this));
- //getCommand("unregister").setExecutor(new UnregisterCommand(this));
- //getCommand("email").setExecutor(new EmailCommand(this));
- //getCommand("captcha").setExecutor(new CaptchaCommand(this));
- //getCommand("converter").setExecutor(new ConverterCommand(this));
+ // getCommand("authme").setExecutor(new AdminCommand(this));
+ // getCommand("register").setExecutor(new RegisterCommand(this));
+ // getCommand("login").setExecutor(new LoginCommand(this));
+ // getCommand("changepassword").setExecutor(new
+ // ChangePasswordCommand(this));
+ // getCommand("logout").setExecutor(new LogoutCommand(this));
+ // getCommand("unregister").setExecutor(new UnregisterCommand(this));
+ // getCommand("email").setExecutor(new EmailCommand(this));
+ // getCommand("captcha").setExecutor(new CaptchaCommand(this));
+ // getCommand("converter").setExecutor(new ConverterCommand(this));
// Purge on start if enabled
autoPurge();
@@ -419,7 +425,8 @@ public class AuthMe extends JavaPlugin {
// Initialize and setup the database
public void setupDatabase() throws Exception {
- if (database != null) database.close();
+ if (database != null)
+ database.close();
// Backend MYSQL - FILE - SQLITE - SQLITEHIKARI
boolean isSQLite = false;
switch (Settings.getDataSource) {
@@ -830,18 +837,23 @@ public class AuthMe extends JavaPlugin {
/**
* Handle Bukkit commands.
*
- * @param sender The command sender (Bukkit).
- * @param cmd The command (Bukkit).
- * @param commandLabel The command label (Bukkit).
- * @param args The command arguments (Bukkit).
+ * @param sender
+ * The command sender (Bukkit).
+ * @param cmd
+ * The command (Bukkit).
+ * @param commandLabel
+ * The command label (Bukkit).
+ * @param args
+ * The command arguments (Bukkit).
*
* @return True if the command was executed, false otherwise.
*/
@Override
- public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
+ public boolean onCommand(CommandSender sender, Command cmd,
+ String commandLabel, String[] args) {
// Get the command handler, and make sure it's valid
CommandHandler commandHandler = this.getCommandHandler();
- if(commandHandler == null)
+ if (commandHandler == null)
return false;
// Handle the command, return the result
@@ -851,7 +863,8 @@ public class AuthMe extends JavaPlugin {
/**
* Get the current installed AuthMeReloaded version name.
*
- * @return The version name of the currently installed AuthMeReloaded instance.
+ * @return The version name of the currently installed AuthMeReloaded
+ * instance.
*/
public static String getVersionName() {
return PLUGIN_VERSION_NAME;
@@ -860,7 +873,8 @@ public class AuthMe extends JavaPlugin {
/**
* Get the current installed AuthMeReloaded version code.
*
- * @return The version code of the currently installed AuthMeReloaded instance.
+ * @return The version code of the currently installed AuthMeReloaded
+ * instance.
*/
public static int getVersionCode() {
return PLUGIN_VERSION_CODE;
diff --git a/src/main/java/fr/xephi/authme/SendMailSSL.java b/src/main/java/fr/xephi/authme/SendMailSSL.java
index 4af471f9..7fab5078 100644
--- a/src/main/java/fr/xephi/authme/SendMailSSL.java
+++ b/src/main/java/fr/xephi/authme/SendMailSSL.java
@@ -1,25 +1,12 @@
package fr.xephi.authme;
import java.io.File;
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
-import java.util.Properties;
-import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.imageio.ImageIO;
-import javax.mail.BodyPart;
-import javax.mail.Message;
-import javax.mail.Multipart;
-import javax.mail.PasswordAuthentication;
-import javax.mail.Session;
-import javax.mail.Transport;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeBodyPart;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMultipart;
+import org.apache.commons.mail.HtmlEmail;
import org.bukkit.Bukkit;
import fr.xephi.authme.cache.auth.PlayerAuth;
@@ -47,7 +34,7 @@ public class SendMailSSL {
}
final String sender = sendername;
- final String port = String.valueOf(Settings.getMailPort);
+ final int port = Settings.getMailPort;
final String acc = Settings.getmailAccount;
final String subject = Settings.getMailSubject;
final String smtp = Settings.getmailSMTP;
@@ -59,35 +46,18 @@ public class SendMailSSL {
@Override
public void run() {
try {
- Properties props = new Properties();
- props.put("mail.smtp.host", smtp);
- props.put("mail.smtp.auth", "true");
- props.put("mail.smtp.port", port);
- props.put("mail.smtp.socketFactory.port", port);
- props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
- props.put("mail.smtp.starttls.enable", true);
- props.put("mail.smtp.socketFactory.fallback", false);
- Session session = Session.getInstance(props, new javax.mail.Authenticator() {
-
- protected PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication(acc, password);
- }
- });
-
- Message message = new MimeMessage(session);
- try {
- message.setFrom(new InternetAddress(acc, sender));
- } catch (UnsupportedEncodingException uee) {
- message.setFrom(new InternetAddress(acc));
- }
- message.addRecipient(Message.RecipientType.TO, new InternetAddress(mail));
- message.setSubject(subject);
- message.setSentDate(new Date());
- BodyPart messageBodyPart = new MimeBodyPart();
- messageBodyPart.setContent(mailText, "text/html");
- Multipart multipart = new MimeMultipart();
- multipart.addBodyPart(messageBodyPart);
-
+ Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
+ HtmlEmail email = new HtmlEmail();
+ email.setSmtpPort(port);
+ email.setHostName(smtp);
+ email.addTo(mail);
+ email.setFrom(acc, sender);
+ email.setSubject(subject);
+ email.setHtmlMsg(mailText);
+ email.setAuthentication(acc, password);
+ email.setStartTLSEnabled(true);
+ email.setStartTLSRequired(true);
+ email.setSSLCheckServerIdentity(true);
// Generate an image ?
File file = null;
if (Settings.generateImage) {
@@ -95,25 +65,17 @@ public class SendMailSSL {
ImageGenerator gen = new ImageGenerator(newPass);
file = new File(plugin.getDataFolder() + File.separator + auth.getNickname() + "_new_pass.jpg");
ImageIO.write(gen.generateImage(), "jpg", file);
- messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(file);
- messageBodyPart.setDataHandler(new DataHandler(source));
- messageBodyPart.setFileName(auth.getNickname() + "_new_pass.jpg");
- multipart.addBodyPart(messageBodyPart);
+ email.embed(source, auth.getNickname() + "_new_pass.jpg");
} catch (Exception e) {
ConsoleLogger.showError("Unable to send new password as image! Using normal text! Dest: " + mail);
}
}
-
- message.setContent(multipart);
try {
- Transport transport = session.getTransport("smtp");
- transport.connect(smtp, Integer.parseInt(port), acc, password);
- transport.sendMessage(message, message.getAllRecipients());
- transport.close();
+ email.send();
} catch (Exception e) {
e.printStackTrace();
- ConsoleLogger.showError("Cannot send email to " + mail + ", an error occured!");
+ ConsoleLogger.showError("Fail to send a mail to " + mail);
}
if (file != null)
file.delete();