由于我是本班的学习委员,经常要收作业(电子版的),而且又刚刚学习了java,所以就顺便用java servlet写了一个关于文件上传下载的程序,供班里人利用校园网进行作业的上传和下载。
   目前这个系统只有用户登录验证和文件上传下载的功能。其中登录验证是用java加上数据库做的,文件上传下载是用的servlet3.0自带的文件上传下载写的。
   现在我想把功能稍微扩展一下,主要是为了好玩同时也练手学技术么。主要是在登录时能够同时发送给登录的人一份登录电子邮件和和短信。百度了下,网上说的发送电子邮件的帖子都是在07、08年的了,感觉技术比较早了。发送短信的帖子也较早了。所以想问下大家有没有最新的这方面的技术,应该怎么写?

解决方案 »

  1.   

    SimpleMailMessage
    JavaMailSenderImpl可以实现发送邮件,比较简单(推送垃圾)……短信没做过!
      

  2.   

    用javaMail做发邮件的,很简单的
    短信的话,貌似需要money了。
      

  3.   

    发邮件用javaMail ,网上找一下资料就学会了。短信以前有弄过,可以到网上买个接口,直接调用就可以了,也很简单,可是每发一条短信都是要钱滴我想对于学生来说的话,么有这个必要,要是有人恶意登陆你这网站,一次一条短信,写个程序一天登陆个几千上万次也不是不可能的。
      

  4.   

    首先楼主分数有点少了。
    其次。。呵呵这个还是比较简单的。。好吧,分享下代码。
    package mail;import java.io.*;
    import java.util.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import org.apache.commons.fileupload.*;
    import org.apache.commons.mail.*;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    public class SendAttachmentMailServlet extends HttpServlet {
    private static final long serialVersionUID = 732051841860692986L;
    private String savePath;
    ServletContext sc;
    private Map<String, String> parameters = new HashMap<String, String>(); public void init(ServletConfig config) {
    savePath = config.getInitParameter("savePath");
    sc = config.getServletContext();
    } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    File file = doAttachment(request);
    EmailAttachment attachment = new EmailAttachment();
    attachment.setPath(file.getPath());
    attachment.setDisposition(EmailAttachment.ATTACHMENT);
    attachment.setName(file.getName());
    MultiPartEmail email = new MultiPartEmail();
    email.setCharset("UTF-8");
    email.setHostName("smtp.sina.com");
    email.setAuthentication("web08", "web2008");
    try {
    email.addTo(parameters.get("to"));
    email.setFrom(parameters.get("from"));
    email.setSubject(parameters.get("subject"));
    email.setMsg(parameters.get("body"));
    email.attach(attachment);
    email.send();
    request.setAttribute("sendmail.message", "邮件发送成功!");
    } catch (EmailException e) {
    e.printStackTrace();
    request.setAttribute("sendmail.message", "邮件发送不成功!");
    }
    request.getRequestDispatcher("/sendResult.jsp").forward(request, response);
    } public File doAttachment(HttpServletRequest request) throws ServletException, IOException {
    File file = null;
    DiskFileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    try {
    List items = upload.parseRequest(request);
    Iterator itr = items.iterator();
    while (itr.hasNext()) {
    FileItem item = (FileItem) itr.next();
    if (item.isFormField()) {
    parameters.put(item.getFieldName(), item.getString("UTF-8"));
    } else {
    File tempFile = new File(item.getName());
    file = new File(sc.getRealPath("/") + savePath, tempFile.getName());
    item.write(file);
    }
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    return file;
    }
    }package mail;import org.apache.commons.mail.EmailException;
    import org.apache.commons.mail.SimpleEmail;import com.sun.mail.util.LineInputStream;
    public class MailTest {
    public static void main(String[] args) {
    SimpleEmail email = new SimpleEmail();
    email.setHostName("smtp.qq.com");
    email.setAuthentication("[email protected]", "zhou_796dada");
    email.setCharset("UTF-8");
    try {
    email.addTo("[email protected]");
    email.setFrom("[email protected]");//必须和Authentication使用的用户相同,否则失败
    email.setSubject("ceshi");
    email.setMsg("---------------------测试");
    email.send();
    } catch (EmailException e) {
    e.printStackTrace();
    } }
    }
    需要用到的jar包
    有问题的话可以私信我。应该不会有问题的。还有注释我没写什么。撸
    ╭︿︿︿╮ 
    {/ o  o /}  
     ( (oo) )   
      ︶ ︶︶还是自己看看
      

  5.   

    我已经加你为关注了,我的会员名 salgrade,麻烦加我为关注,就可以给你发私信了。