1、首先Java发送邮件需要用到JavaMail,先到Oracle官网上下载好最新版本的JavaMail(刚才看了一下,最新是1.5.3),把下载的这个jar文件放到classpath里(如果是Web项目,就放到WEB-INF/lib目录下。
2、JavaMail主要支持发送纯文本的和html格式的邮件。发送html格式的邮件的一个例程如下:importjavax.mail.internet.InternetAddress;importjavax.mail.internet.MimeMessage;importjavax.mail.internet.MimeUtility;importjavax.mail.Session;importjavax.mail.MessagingException;importjavax.mail.Transport;publicclassSendHtmlMail{publicstaticvoidsendMessage(StringsmtpHost,Stringfrom,Stringto,Stringsubject,StringmessageText)throwsMessagingException,java.io.UnsupportedEncodingException{
3、//Step1:ConfigurethemailsessionSystem.out.println("Configuringmailsessionfor:"+smtpHost);java.util.Propertiesprops=newjava.util.Properties();props.setProperty("mail.smtp.auth","true");//指定是否需要SMTP验证props.setProperty("mail.smtp.host",smtpHost);//指定SMTP服务器props.put("mail.transport.protocol","smtp");SessionmailSession=Session.getDefaultInstance(props);mailSession.setDebug(true);//是否在控制台显示debug信息//Step2:ConstructthemessageSystem.out.println("Constructingmessage-from="+from+"to="+to);InternetAddressfromAddress=newInternetAddress(from);InternetAddresstoAddress=newInternetAddress(to);
4、MimeMessagetestMessage=newMimeMessage(mailSession);testMessage.setFrom(fromAddress);testMessage.addRecipient(javax.mail.Message.RecipientType.TO,toAddress);testMessage.setSentDate(newjava.util.Date());testMessage.setSubject(MimeUtility.encodeText(subject,"gb2312","B"));testMessage.setContent(messageText,"text/html;charset=gb2312");System.out.println("Messageconstructed");//Step3:NowsendthemessageTransporttransport=mailSession.getTransport("smtp");transport.connect(smtpHost,"webmaster","password");transport.sendMessage(testMessage,testMessage.getAllRecipients());transport.close();System.out.println("Messagesent!");}
5、 publicstaticvoidmain(String[]args){StringsmtpHost="localhost";Stringfrom="[email protected]";Stringto="[email protected]";Stringsubject="html邮件测试";//subjectjavamail自动转码StringBuffertheMessage=newStringBuffer();theMessage.append("<h2><fontcolor=red>这倒霉孩子</font></h2>");theMessage.append("<hr>");theMessage.append("<i>年年失望年年望</i>");try{SendHtmlMail.sendMessage(smtpHost,from,to,subject,theMessage.toString());}catch(javax.mail.MessagingExceptionexc){exc.printStackTrace();}catch(java.io.UnsupportedEncodingExceptionexc){exc.printStackTrace();}}}
6、JavaMail是封装了很多邮件操作的,所以使用起来不很困难,建议你到JavaMail官网看一下API或下载Java Doc API文档。