/** * 邮件工具 */ package test; import java.util.Date; import java.util.Properties; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Multipart; 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; /** * @author lisanlai * */ public class MailUtil { /** * 发送电子邮件 * @param smtpHost 发信主机 * @param receiver 邮件接收者 * @param title 邮件的标题 * @param content 邮件的内容 * @param sender 邮件发送者 * @param user 发送者邮箱用户名 * @param pwd 发送者邮箱密码 * @throws Exception */ public static void sendEmail(String smtpHost,String receiver,String title,String content,String sender,String user,String pwd) throws Exception{ Properties props=new Properties(); props.put("mail.host", smtpHost);//发信的主机 props.put("mail.transport.protocol", "smtp"); //props.put("mail.smtp.host",smtpHost); props.put("mail.smtp.auth","true"); Session s=Session.getDefaultInstance(props); s.setDebug(true); MimeMessage message=new MimeMessage(s); //给消息对象设置发件人/收件人/主题/发信时间 //发件人的邮箱 InternetAddress from = new InternetAddress(sender); message.setFrom(from); InternetAddress to=new InternetAddress(receiver); message.setRecipient(Message.RecipientType.TO,to); message.setSubject(title); message.setSentDate(new Date()); //给消息对象设置内容 BodyPart mdp=new MimeBodyPart();//新建一个存放信件内容的BodyPart对象 mdp.setContent(content,"text/html;charset=gb2312");//给BodyPart对象设置内容和格式/编码方式防止邮件出现乱码 Multipart mm=new MimeMultipart();//新建一个MimeMultipart对象用来存放BodyPart对 //象(事实上可以存放多个) mm.addBodyPart(mdp);//将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart) message.setContent(mm);//把mm作为消息对象的内容 message.saveChanges(); Transport transport=s.getTransport("smtp"); transport.connect(smtpHost,user,pwd);//设置发邮件的网关,发信的帐户和密码,这里修改为您自己用的 transport.sendMessage(message,message.getAllRecipients()); transport.close(); } }
测试:
package test; public class TestMail { /** * @param args */ public static void main(String[] args) { String smtpHost = Constants.SMTP_HOST; String receiver = "[email protected]"; String title = Constants.TITLE; String content = StringUtil.formatMsg(Constants.CONTENT,"admin","111111"); String sender = Constants.SENDER; String user = Constants.SENDER_NAME; String pwd = Constants.SENDER_PWD; try { System.out.println("开始发送邮件:"); MailUtil.sendEmail(smtpHost, receiver, title, "这是一个测试邮件,来自:李三来", sender,user,pwd); } catch (Exception e) { e.printStackTrace(); } } }