我可以给你一个不用javamail的收发邮件的程序,这是我的webmail中的一部分,可以给我来信:[email protected]支持smtp认证

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
    <%@ page contentType="text/html;charset=gb2312" %>
    <%@ page import="java.io.*"%>
    <%@ page import="java.util.*"%>
    <%@ page import="java.sql.*"%> 
    <%@ page import="javax.servlet.*"%> 
    <%@ page import="javax.servlet.http.*"%> 
    <%@ page import="javax.mail.*, javax.mail.internet.*, javax.activation.*,"%><%@ page import="java.net.*"%>  
    <%@ page import="java.util.*, java.text.*" %> 
    <%@ page session="true"%>
    <%    Properties props = new Properties();
        Session sendMailSession;
        Transport transport;
        sendMailSession = Session.getInstance(props, null);
        props.put("mail.smtp.host", "smtp.sina.com.cn");  //"202.106.187.180" 是“smtp.sina.com.cn”的IP!
        props.put("mail.smtp.auth", "true");  //允许smtp校验    transport = sendMailSession.getTransport("smtp");
        transport.connect("smtp.sina.com.cn","你的用户名","你的密码");  //你在sina的用户名,密码...........
        Message newMessage = new MimeMessage(sendMailSession);     //设置mail主题
        String mail_subject="图书过期通知";
        newMessage.setSubject(mail_subject);
               //设置发信人地址
       String strFrom="管理员";
       strFrom=new String(strFrom.getBytes(),"8859_1");
               newMessage.setFrom(new InternetAddress(strFrom));
               //设置收件人地址
               newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));           //设置mail正文
               newMessage.setSentDate(new java.util.Date());
               String mail_text= "尊敬的读者,您好!\r\n"+
                    "\r\n "+  
                        "      您在本馆所借的书《123》应该于   归还,现在已经过期,请尽快将图书归还!\r\n "+
                    "\r\n "+ 
                        "                                                             管理员\r\n"; 
               newMessage.setText(mail_text);           newMessage.saveChanges();  //保存发送信息
               transport.sendMessage(newMessage,newMessage.getRecipients(Message.RecipientType.TO));  //发送邮件     transport.close();
    %>
      

  2.   

    <%@ page contentType="text/html; charset=ISO8859_1" %>
    <%@ page import="java.util.*, javax.mail.*, javax.mail.internet.*" %>
    <%
        String server="172.17.1.1";//request.getParameter("host");
        String username="wangjm";//request.getParameter("username");
        String password="1111";//request.getParameter("password");
    System.out.println("hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff111");
    Properties props = new Properties();
        props.put("mail.smtp.host",server);
        Session s = Session.getInstance(props,null);
    System.out.println("hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff222");    int port =110;
        String protocol = "pop3";
        String file = "";
    System.out.println("hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff333");    s.setDebug(false);    URLName urln = new URLName(protocol,server,port,file,username,password);
    Store store=null;
    try{
     store = s.getStore(protocol);
    }catch(Exception e){
    System.out.println("7777777777777777777="+e.toString());
    }
    System.out.println("hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff444");    s.setDebug(true);        
    try{
    System.out.println("hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff5555");     store.connect(server,port,username,password);
        }catch(MessagingException e){
            throw new Exception("Cannot log on to server.Please verify the username and password.");
            }
    try{
          String mbox = "INBOX";
          Folder folder = store.getFolder(mbox);
          folder.open(Folder.READ_WRITE);
            
          Message[] messages = folder.getMessages();
          int i=0;
          for(i=messages.length-1;i>=0;i--){
                InternetAddress[] from = (InternetAddress[])messages[i].getFrom();
                InternetAddress[] to = (InternetAddress[])messages[i].
                                        getRecipients(Message.RecipientType.TO);
    %>
                <%=i+1%><p>To <%= to[0].getAddress() %>, from <a href="content.jsp?id=<%=i%>"target=_blank> <%= from[0].getAddress() %></a>,
                subject <%= messages[i].getSubject() %>,date:<%=messages[i].getSentDate()%>,body:<%=messages[i].getContent()%>    </p><%          
                }     }catch(MessagingException e){
                throw new Exception("Cannot read message.Please verify your E-mail server has a valid inbox");
                }finally{
                    store.close();
                }
    %>
    却出现如下的异常
    hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff111
    [02.08.14 18:22:05:313 CST] 496807b0 SystemOut     U hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff222
    [02.08.14 18:22:05:373 CST] 496807b0 SystemOut     U hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff333
    [02.08.14 18:22:05:433 CST] 496807b0 SystemOut     U 7777777777777777777=javax.mail.NoSuchProviderException: No provider for pop3
    [02.08.14 18:22:05:503 CST] 496807b0 SystemOut     U hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff444
    [02.08.14 18:22:05:553 CST] 496807b0 SystemOut     U hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff5555
      

  3.   

    package ejb;import javax.mail.*;
    import java.util.*;
    import javax.mail.internet.*;
    import java.io.*;
    import javax.activation.*;public class smtpBean {
            String info  ;     //存储出错信息
            String m_user;     //用于需要验证的用户名
            String m_pass;     //口令
            String m_host;   //SMTP服务器名称
            int m_port;          //端口号,缺省为25        String m_from;     //发件人
            String m_to;       //收件人
            String m_cc;       //抄送
            String m_bcc;      //密送
            String m_subject;  //主题
            String m_body;     //内容体
            LinkedList m_attach=null;       //附件的文件名列表      public smtpBean() {
              info      =""         ;
              m_user    =""         ;
              m_pass    =""         ;
              m_host  =""         ;
              m_port    =25         ;
              m_from    =""         ;
              m_to      =""         ;
              m_cc      =""         ;
              m_bcc     =""         ;
              m_subject =""         ;
              m_body    =""         ;
              m_attach  =null       ;
            }
            public String getInfo() {
              return info;
            }
            public void setInfo(String newSample) {
              info = newSample;
            }        //设定smtp服务器用户名(可选)
            public void setUser(String user){
                    m_user=user;
            }
            //设定smtp服务器口令(可选)
            public void setPass(String pass){
                    m_pass=pass;
            }        //设定smtp的地址和端口号(可选)
            public void setServer(String server,int port){
                    if(port>0) m_port=port;
                    m_host=server;
            }        //设定smtp服务器地址,端口号使用缺省值
            public void setServer(String server){
                    m_host=server;
            }        //发件人
            public void setFrom(String from){
                    m_from = from;
            }        //收件人
            public void setTo(String to){
                    m_to = to;
            }        //抄送(可选)
            public void setCc(String cc){
                    m_cc=cc;
            }        //密送(可选)
            public void setBcc(String bcc){
                    m_bcc=bcc;
            }        //设置新的主题(可选)
            public void setSubject(String subject){
                    m_subject=subject;
            }        //设置信的内容,若以<html>或<HTML>开头的内容为text/html格式
            public void setBody(String body){
                    m_body=body;
            }        //可以多次添加附件,文件名最好是全路径,使用相对路径容易出错
            public void attach(String attachfile){
                    if(m_attach==null) m_attach=new LinkedList();
                    m_attach.add(attachfile);
            }        public boolean sendMail() throws Exception{                Properties props=System.getProperties();
                    props.setProperty("mail.transport.protocol","smtp");    //smtp协?
                    props.setProperty("mail.smtp.host",m_host);   //服务器地址
                    props.setProperty("mail.smtp.port",""+m_port);  //端口号
                    //认证信息
                    if(m_user!=null && m_pass!=null && m_user.length()>0 && m_pass.length()>0){
                            props.setProperty("mail.smtp.auth","true");                }                Session sess = Session.getInstance(props,null );                MimeMessage msg=new MimeMessage(sess);                //发件人
                    msg.setFrom(new InternetAddress(m_from));                //收件人、抄送、密送
                    msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(m_to));
                    if(m_cc!=null && m_cc.length()>0)
                            msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(m_cc));
                    if(m_bcc!=null && m_bcc.length()>0)
                            msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(m_bcc));                //主题
                    if(m_subject!=null) msg.setSubject(m_subject);                //发件日期
                    msg.setSentDate(new Date());                //文本内容
                    MimeMultipart content=new MimeMultipart();
                    if(content==null) return false;                MimeBodyPart part;
                    if(m_body!=null && m_body.length()>0){
                            part=new MimeBodyPart();
                            String type="text/plain";
                            if(m_body.startsWith("<html>") || m_body.startsWith("<HTML>")){
                                    type="text/html";
                            }
                            part.setText(m_body);                        //以<html>和<HTML>开始的文本为text/html类型
                            part.setHeader("Content-Type",type);                        content.addBodyPart(part);                }                //添加附件
                    if(m_attach!=null){                        String filename;
                            Iterator it=m_attach.iterator();                        while(it.hasNext()){
                                    filename=(String)it.next();
                                    if(filename==null || filename.length()<=0) continue;                                part=new MimeBodyPart();
                                    FileDataSource fds = new FileDataSource(filename);
                                    part.setDataHandler(new DataHandler(fds));
                                    part.setFileName(MimeUtility.encodeText(fds.getName()));                                content.addBodyPart(part);
                            }
                    }                //保存修改
                    msg.setContent(content);
                    msg.saveChanges();                //如果需要验证用户(如:smtp.sina.com.cn),则使用connect并sendMesssage
                    //注意必须设定mail.smtp.auth属性为true
                    if(m_user!=null && m_pass!=null && m_user.length()>0 && m_pass.length()>0){
                            Transport trans=sess.getTransport();
                            trans.connect(m_host,m_user,m_pass);
                            trans.sendMessage(msg,InternetAddress.parse(m_to));
                            //if(m_cc!=null && m_cc.length()>0){
                             //   trans.sendMessage(msg,InternetAddress.parse(m_cc));
                            //}
                            trans.close();
                    }                //否则,不需要用户名和口令使用静态方法发送由件
                    else Transport.send(msg);                return true;
            }}