日期:2014-05-18  浏览次数:20639 次

关于JavaMail的使用
从一个页面发请求给Servlet,把一些信息传过去,在servlet里把数据保存到数据库的同时也发送给一个邮件地址,能否通过JavaMail实现?
再说的具体一点:一个JSP页面上包括一个人的个人注册信息,包括姓名和密码,提交到Servlet时一方面要存储到数据库,另一方面想发给一个地址aaaaaa@gmail.com,这个能通过JavaMail实现吗?

------解决方案--------------------
当然可以实现
javamail发送邮件例子():
javax.mail.Session mailSession;
javax.mail.internet.MimeMessage mimeMsg;
java.util.Properties props = new java.util.Properties();
props.put( "mail.smtp.host ", "smtp.sina.com ");
props.put( "mail.smtp.auth ", "true ");
mailSession = Session.getInstance(props);
mailSession.setDebug(true);
mimeMsg = new javax.mail.internet.MimeMessage(mailSession);
mimeMsg.setFrom(new javax.mail.internet.InternetAddress( "skyfire82@sina.com "));
mimeMsg.setSubject( "测试标题一 ", "gb2312 ");
mimeMsg.setSentDate(new java.util.Date());

String mailCon= " ";
mailCon= "测试内容一1 ";
mimeMsg.setContent(mailCon, "text/html; charset=gbk ");

InternetAddress [] mlist=new InternetAddress[1];
mlist[0]=new InternetAddress( "skyfire82@sina.com ");

Transport transport = mailSession.getTransport( "smtp ");
transport.connect( "smtp.sina.com ", "skyfire82 ", "password ");

transport.sendMessage(mimeMsg,mlist);
transport.close();
------解决方案--------------------
用第三方服务器当然可以
------解决方案--------------------
这个问题可简单,可复杂,
简单来说,在处理servlet的时候同时发送邮件即可,使用现成的smtp服务器。
复杂来讲,第三方stmp服务器终究不稳定,也不好控制,另外,发送邮件可能需要点时间,所以需要把邮件发送过程抛给一个线程来处理,否则页面会僵住的。
------解决方案--------------------
Jmail的包里面就有例子
------解决方案--------------------
同意,用一个线程来做。我就是这么做了,分开两部分,一个专门插入数据,一个线程读数据进行邮件的发送。