package util;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.MessagingException;
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;
public class SendMail {
public SendMail() {
}
/**
* 发送邮件
* @param serverEmailSmtp 邮件服务器地址
* @param serverEmail 发出邮件邮箱
* @param serverEmailPassword 发出邮箱密码
* @param serverEmailUsername 发出邮箱用户名
* @param clientEmail 要发至的邮箱
* @param mailTitle 邮件标题
* @param mailCobntents 邮箱内容
* @throws UnknownHostException
*/
public void send(String serverEmailSmtp,String serverEmail,String serverEmailPassword,String serverEmailUsername,String clientEmail,String mailTitle,String mailContents) throws UnknownHostException{
try {
Properties properties = new Properties();
Session sendMailSession;
Transport transport;
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.host", serverEmailSmtp);
properties.put("mail.smtp.user", serverEmail);
properties.put("mail.smtp.password", serverEmailPassword);
PopupAuthenticator popA = new PopupAuthenticator();//邮件安全认证
popA.perforCheck(serverEmailUsername,serverEmailPassword);
sendMailSession =Session.getInstance(properties, popA);
MimeMessage mimeMessage = new MimeMessage(sendMailSession);
mimeMessage.setFrom(new InternetAddress(serverEmail));
mimeMessage.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(clientEmail));
mimeMessage.setSubject(mailTitle);
mimeMessage.setSentDate(new Date());
MimeMultipart mimeMultipart = new MimeMultipart("related");
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mailContents +="<br><a href=\"http://"+getIpAddress()+":8080/IcpProject_ISP/system/activeUser.jsp\">点击此处激活<a>";
mimeBodyPart.setContent(mailContents,"text/html;charset=UTF-8");
mimeMultipart.addBodyPart(mimeBodyPart);
mimeMessage.setContent(mimeMultipart);
/**
* String mailContent=mailContents;
* mailContent+="你好!tobey\n\n";
* mailContent +=new Date();
* mailContent +="<a herf=\"http://www.163.com\">邮件<a>";
* mimeMessage.setText(mailContent);
*/
transport=sendMailSession.getTransport("smtp");
transport.send(mimeMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
}
public String getIpAddress() throws UnknownHostException{
InetAddress localHost = InetAddress.getLocalHost();
return localHost.getHostAddress();
}
public class PopupAuthenticator extends Authenticator{
String username=null;
String password=null;
public PopupAuthenticator() {
}
public PasswordAuthentication perforCheck(String user, String pass) {
this.username = user;
this.password = pass;
return getPasswordAuthentication();
}
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(username,password) ;
}
}
public static void main(String[] args) throws UnknownHostException {
SendMail sendMail = new SendMail();
//sendMail.send();
sendMail.send("smtp.sina.com", "TobeyMing@sina.com", "111111111", "TobeyMing", "TobeyMing@hotmail.com", "主题内容", "How are you?");
//SystemParameter.initProperties();
String mailContent ="用户名"+"123"+ "密码" + "123";
//new SendMail().send(SystemParameter.SERVER_EMAIL_SMTP,SystemParameter.SERVER_EMAIL,SystemParameter.SERVER_EMAIL_PASSWORD,SystemParameter.SERVER_EMAIL_USERNAME,"TobeyMing@hotmail.com"+"通知"+"mailContent");
}
}