用户注册提交后,给予对方一封邮件,邮件内容给予一个链接。等到对方链接到相应页面,用户注册完成!有的直接发我邮箱[email protected]  或者[email protected]代码一到,验证通过,直接给分!

解决方案 »

  1.   

    这个测试很多遍了,我们用的就是
    /**
     * 验证是否是电子邮箱
     */
    function isEmail(str)
    {
    var reg=/^.{1,}[@].{1,}[\.].{1,}$/;
    return str.match(reg);
    }
      

  2.   

    转:用到了dnsjava(下载地址:http://www.dnsjava.org/)来获取MX记录。考虑到效率问题可将获取的MX记录保存到xml或数据库,下次使用时先检索本地数据,若不存在再获取其MX记录。import java.io.*;
    import java.net.*;
    import org.xbill.DNS.*;public class CheckEmail
    {
        public static boolean check(String mailTo)
        {
            try {
                if (!mailTo.matches("\w+([-_.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*")) ...{ //判断格式
                    return false;
                }
                String hostName = mailTo.split("@")[1];  //获得如163.com
                String host = null;  // MX记录
        
                Lookup lookup = new Lookup(hostName, Type.MX);
                lookup.run();
                if (lookup.getResult() != Lookup.SUCCESSFUL) ...{
                    return false;
                }
                else ...{
                    Record[] result = lookup.getAnswers();
                    host = result[0].getAdditionalName().toString();
                }
                
                Socket socket = new Socket(host, 25);
                BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
                BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                in.readLine();
                out.write("HELO Sender ");
                out.flush();
                in.readLine();
                out.write("MAIL FROM:<[email protected]> ");
                out.flush();
                in.readLine();
                out.write("RCPT TO:<" + mailTo + "> ");
                out.flush();
                String r = in.readLine();
                out.write("QUIT ");
                out.flush();
                
                out.close();
                in.close();
                socket.close();
                if (!r.startsWith("250")) ...{
                    return false;
                }
                else ...{
                    return true;
                }
            } catch (Exception e) ...{
                return false;
            }
        }
    }
      

  3.   

    String regex="\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
    System.out.println(mail.matches(regex));
    //mail是你邮件的字符串
      

  4.   

    http://zhangli-lisa.javaeye.com/blog/415347
    用这个发邮件吧,里面用到的包你自己下载就行了
      

  5.   

    javax.mail.MessagingException: Unknown SMTP host~报错原理怎么解决
      

  6.   

    网上搜javamail 就有很多,http://sjsky.javaeye.com/blog/674591
    验证的话只要在mail 的内容里面写上servlet的连接地址并加上用户id,那个servlet的作用就是在数据库里面讲该id的用户激活。
      

  7.   

    我现在电脑是用代理的,好像这个方法不行啊,能不能通过代理发邮件功能程序,类似FOXMAIL之类的~
      

  8.   

    下面是报错代码
    DEBUG: JavaMail version 1.4.1
    DEBUG: successfully loaded file: D:\Java\jdk\jre\lib\javamail.providers
    DEBUG: URL jar:file:/D:/glassfish-v2ur2/lib/smtp.jar!/META-INF/javamail.providers
    DEBUG: successfully loaded resource: jar:file:/D:/glassfish-v2ur2/lib/smtp.jar!/META-INF/javamail.providers
    DEBUG: URL jar:file:/D:/NetBeansProjects/jftregister/build/web/WEB-INF/lib/imap.jar!/META-INF/javamail.providers
    DEBUG: successfully loaded resource: jar:file:/D:/NetBeansProjects/jftregister/build/web/WEB-INF/lib/imap.jar!/META-INF/javamail.providers
    DEBUG: URL jar:file:/D:/NetBeansProjects/jftregister/build/web/WEB-INF/lib/pop3.jar!/META-INF/javamail.providers
    DEBUG: successfully loaded resource: jar:file:/D:/NetBeansProjects/jftregister/build/web/WEB-INF/lib/pop3.jar!/META-INF/javamail.providers
    DEBUG: URL jar:file:/D:/NetBeansProjects/jftregister/build/web/WEB-INF/lib/smtp.jar!/META-INF/javamail.providers
    DEBUG: successfully loaded resource: jar:file:/D:/NetBeansProjects/jftregister/build/web/WEB-INF/lib/smtp.jar!/META-INF/javamail.providers
    DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
    DEBUG: Tables of loaded providers
    DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
    DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsy stems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
    DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
    DEBUG: URL jar:file:/D:/glassfish-v2ur2/lib/smtp.jar!/META-INF/javamail.address.map
    DEBUG: successfully loaded resource: jar:file:/D:/glassfish-v2ur2/lib/smtp.jar!/META-INF/javamail.address.map
    DEBUG: URL jar:file:/D:/NetBeansProjects/jftregister/build/web/WEB-INF/lib/smtp.jar!/META-INF/javamail.address.map
    DEBUG: successfully loaded resource: jar:file:/D:/NetBeansProjects/jftregister/build/web/WEB-INF/lib/smtp.jar!/META-INF/javamail.address.map
    DEBUG: successfully loaded file: D:\Java\jdk\jre\lib\javamail.address.map
    DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
    DEBUG SMTP: useEhlo true, useAuth true
    DEBUG SMTP: useEhlo true, useAuth true
    DEBUG SMTP: trying to connect to host "smtp.163.com", port 25, isSSL false
    The log message is null.
    java.lang.NullPointerException
            at com.sun.enterprise.server.ss.ASSocketService.isLocalClient(ASSocketService.java:428)
            at com.sun.enterprise.server.ss.ASSocketServiceProxy.isLocalClient(ASSocketServiceProxy.java:82)
            at com.sun.enterprise.server.ss.provider.ASPlainSocketImpl.connect(ASPlainSocketImpl.java:290)
            at com.sun.enterprise.server.ss.provider.ASClientSocketImpl.connect(ASClientSocketImpl.java:267)
            at java.net.Socket.connect(Socket.java:519)
            at java.net.Socket.connect(Socket.java:469)
            at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:233)
            at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
            at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1359)
            at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
            at javax.mail.Service.connect(Service.java:310)
            at javax.mail.Service.connect(Service.java:169)
            at javax.mail.Service.connect(Service.java:118)
            at javax.mail.Transport.send0(Transport.java:188)
            at javax.mail.Transport.send(Transport.java:118)
            at jft.db.MailSend.SendMail(MailSend.java:97)
            at org.apache.jsp.jft.findcode.emailupdate_jsp._jspService(emailupdate_jsp.java from :96)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:470)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:364)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
            at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
            at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
            at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
            at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
            at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
            at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
            at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
            at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
    邮件发送!
      

  9.   

    第一次回答问题  多指教
      function isEmail(str){
           var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
           return reg.test(str);
    }