// 要把用户的注册邮箱存在数据库,然后用javamail发送过去。 import java.util. * ; import java.io. * ; import javax.mail. * ; import javax.mail.internet. * ; import javax.activation. * ; public class javaMail ... {private boolean bAuth =false; //SMTP服务器是否需要认证private Vector vfile = new Vector(10,10); //附件列表变量private Vector vmsg = new Vector(10,10); //信息体变量public String from="pdms@amoi.com.cn"; //邮件发送者private String to=""; //邮件接收者public static String smtpHost="10.100.51.12"; //邮件服务器private String context=""; //邮件正文private String subject=""; //邮件主题private String uid=""; //邮件帐号private String pwd=""; //邮件密码private String filename=""; //附件路径public class SmtpAuth extends Authenticator //一个发信认证类...{public String User;public String Pass;public SmtpAuth(String user,String pass)...{this.User = user;this.Pass = pass;}protected PasswordAuthentication getPasswordAuthentication()...{return new PasswordAuthentication(User,Pass);}}public boolean isValidEmail(String s)//利用正则表达表判断是否是用效的Email地址...{if(s==null) s="";String regx = "/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*";if(s.matches(regx))return true;elsereturn false;}public void AddAttach(String s) //收集附加文件 ...{ if(s!=null)vfile.addElement(s); }private void setMessage(String s) //收集邮件正文 ...{ if(s!=null)vmsg.addElement(s); }//发送带认证邮件public boolean sendMail(String To,String Subject,String Content,String Uid,String Pwd)...{to=To; subject=Subject;setMessage(Content);uid = Uid;pwd = Pwd;bAuth = true;return startSend();}//发送不带认证邮件public boolean sendMail(String To,String Subject,String Content)...{to=To; subject=Subject;setMessage(Content);bAuth = false;return startSend();}public javaMail()...{}//发送邮件过程private boolean startSend()...{ Properties props = System.getProperties(); props.put("mail.smtp.host", smtpHost); Session session;if(bAuth)...{SmtpAuth sa = new SmtpAuth(uid,pwd);props.put("mail.smtp.auth","true");session=Session.getInstance(props, sa); }else...{session=Session.getDefaultInstance(props, null); }try ...{ //创建一个消息,并初始化该消息的各项元素 MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); StringTokenizer st=new StringTokenizer(to,";");InternetAddress toAddress[] = new InternetAddress[st.countTokens()];int i=0;while(st.hasMoreTokens())...{toAddress[i]= new InternetAddress(st.nextToken());i++;}msg.setRecipients(Message.RecipientType.TO,toAddress);msg.setSubject(subject); //把message part加入新创建的Multipart Multipart mp = new MimeMultipart(); // 邮件内容的第一部分 Enumeration emsg=vmsg.elements(); while(emsg.hasMoreElements()) ...{ context=emsg.nextElement().toString(); MimeBodyPart mbp1=new MimeBodyPart(); mbp1.setText(context); mp.addBodyPart(mbp1); } vmsg.removeAllElements(); // 邮件内容的第二部分 Enumeration efile=vfile.elements(); while(efile.hasMoreElements()) ...{ MimeBodyPart mbp2=new MimeBodyPart(); filename=efile.nextElement().toString(); FileDataSource fds=new FileDataSource(filename); mbp2.setDataHandler(new DataHandler(fds)); mbp2.setFileName(fds.getName()); mp.addBodyPart(mbp2); }vfile.removeAllElements(); // 把MultiPart加入邮件 msg.setContent(mp); // 设置邮件头的发送日期 msg.setSentDate(new Date()); // 发送邮件 Transport.send(msg); } catch (MessagingException mex) ...{ mex.printStackTrace(); Exception ex = null; if ((ex=mex.getNextException())!=null) ...{ ex.printStackTrace(); } return false; }catch(Exception e)...{System.out.println("Catched Exception:"+e.toString());}return true; }public static String getSmtpHost()...{return smtpHost.trim();}public static void setSmtpHost(String mailHost)...{smtpHost=mailHost.trim();}