package org.quickbundle.tools.support.mail;
public class SendPassword {
private final static int DEFAULT_PASSWORD_LENGTH = 6;
private final static String passwordSet = "abcdefghijklmnopqrstuvwxyz0123456789";
/**
* @param mailConfig
* [0]mailSmtpHost--mail.quickbundle.org,
* [1]sendMailUser--test,
* [2]sendMailPassword--******,
* [3]mailFrom--noreply@quickbundle.org
* @param contentConfig
* [0] title--mail title 支持带有${user,password,mailto} ,
* [1] bodyText--可包含${user|password|mailto}
* [2] bodyHtml--可包含${user|password|mailto}
* [3] aAffix 附件数组{{"显示名", "附件"}, {"a", "/a.jpg"}}
* @param aUser_email 二维数组{{"user1", "email1"}, {"user2", "email2"}}
* @return user1:password2 \n user2:password2的格式
*/
public static String doSendPasswordMail(String[] mailConfig, Object[] contentConfig, String[][] aUser_email) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < aUser_email.length; i++) {
String user = aUser_email[i][0];
String password = getRandomPassword(DEFAULT_PASSWORD_LENGTH);
sb.append(aUser_email[i][0]);
sb.append(":");
sb.append(password);
sb.append("\n");
//发邮件
String mailto = aUser_email[i][1];
String subject = String.valueOf(contentConfig[0]);
String bodyText = null;
String bodyHtml = null;
String[][] aAffix = null;
if(contentConfig.length > 1 && contentConfig[1].toString().length() > 0) {
bodyText = contentConfig[1].toString();
bodyText = bodyText.replaceAll("\\$\\{user\\}", user);
bodyText = bodyText.replaceAll("\\$\\{password\\}", password);
bodyText = bodyText.replaceAll("\\$\\{mailto\\}", mailto);
}
if(contentConfig.length > 2 && contentConfig[2] != null && contentConfig[2].toString().length() > 0) {
bodyHtml = contentConfig[2].toString();
bodyHtml = bodyHtml.replaceAll("\\$\\{user\\}", user);
bodyHtml = bodyHtml.replaceAll("\\$\\{password\\}", password);
bodyHtml = bodyHtml.replaceAll("\\$\\{mailto\\}", mailto);
}
if(contentConfig.length > 3 && contentConfig[3] != null && contentConfig[3] instanceof String[][]) {
aAffix = (String[][])contentConfig[3];
}
RmMailHandler rmh = new RmMailHandler(mailConfig);
rmh.send(mailto, subject, bodyText, bodyHtml, aAffix);
}
return sb.toString();
}
/**
* 得到指定位数的随机密码,小写字母+数字
*
* @param length
* @return
*/
public static String getRandomPassword(int length) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
sb.append(passwordSet.charAt((int) (Math.random() * passwordSet.length())));
}
return sb.toString();
}
}