Package org.jasen.core

Examples of org.jasen.core.ProbabilityTestResult


     (non-Javadoc)
     * @see org.jasen.interfaces.JasenPlugin#test(org.jasen.core.Jasen, javax.mail.internet.MimeMessage, org.jasen.interfaces.JasenMessage, org.jasen.interfaces.ParserData, org.jasen.interfaces.ReceivedHeaderParser)
     */
    public JasenTestResult test(Jasen engine, MimeMessage rawMessage, JasenMessage parsedMessage, ParserData data, ReceivedHeaderParser parser) throws JasenException  {

        ProbabilityTestResult result = new ProbabilityTestResult();

        try
        {
            int forgery = MimeUtils.isForgery(engine.getInetAddressResolver(), rawMessage, parsedMessage.getEnvelopeSender(), parser);
            switch (forgery) {
            case MimeUtils.FORGERY_CONFIRMED:
                result.setProbability(highProb);
            break;

            case MimeUtils.FORGERY_REJECTED:
                result.setProbability(lowProb);
            break;

            default:
                result.setProbability(medProb);
            break;
            }
        }
        catch (JasenException e)
        {
            // Couldn't parse the headers
            result.setProbability(medProb);
            throw e;
        }
        catch (MessagingException e)
        {
            result.setProbability(medProb);
            throw new JasenException(e);
        }

        return result;
    }
View Full Code Here


     (non-Javadoc)
     * @see org.jasen.interfaces.JasenPlugin#test(org.jasen.core.Jasen, javax.mail.internet.MimeMessage, org.jasen.interfaces.JasenMessage, org.jasen.interfaces.ParserData, org.jasen.interfaces.ReceivedHeaderParser)
     */
    public JasenTestResult test(Jasen engine, MimeMessage rawMessage, JasenMessage parsedMessage, ParserData data, ReceivedHeaderParser parser) throws JasenException {

        ProbabilityTestResult result = new ProbabilityTestResult();
        result.setProbability(lowProb);

        try
        {
            if(rawMessage.getAllRecipients() == null || rawMessage.getAllRecipients().length >= threshold) {
                result.setProbability(highProb);
            }
        }
        catch (AddressException e) {
            // Couldn't parse the addresses
            result.setProbability((highProb + lowProb) / 2.0f);
        }
        catch (MessagingException e)
        {
            // Couldn't parse the message
            result.setProbability((highProb + lowProb) / 2.0f);
        }

        return result;
    }
View Full Code Here

    /*
     *  (non-Javadoc)
     * @see org.jasen.interfaces.JasenPlugin#test(org.jasen.core.Jasen, javax.mail.internet.MimeMessage, org.jasen.interfaces.JasenMessage, org.jasen.interfaces.ParserData, org.jasen.interfaces.ReceivedHeaderParser)
     */
    public JasenTestResult test(Jasen engine, MimeMessage rawMessage, JasenMessage parsedMessage, ParserData data, ReceivedHeaderParser parser) throws JasenException {
        ProbabilityTestResult result = new ProbabilityTestResult();

        if(data.getMessageTokens() == null || data.getMessageTokens().length <= minTokens) {
            result.setProbability(defaultProb);
        }
        else
        {
            double prob = calculator.confirmHypothesis(data.getMessageTokens(), map);
            result.setProbability((float)prob);
        }
        return result;
    }
View Full Code Here

      String[] headers;
      ReceivedHeaderParserData pdata = null;
      float fResult = unknown;
      boolean isAbsolute = false;
     
      ProbabilityTestResult result = new ProbabilityTestResult();
     
    try {
      headers = rawMessage.getHeader("Received");

      if(headers != null) {
         
          String header = headers[0];
         
          if(checkAll) {
              // parse all headers
              for (int i = 0; i < headers.length; i++) {
                        if(fResult < max) {
                            header = headers[i];
                            try {
                                pdata = parser.parse(header,engine.getInetAddressResolver());
                                fResult = checkSender(pdata, engine);
                               
                                if(fResult != EMPTY) {
                                    isAbsolute = absolute;
                                   
                                    if(isAbsolute) {
                                        break;
                                    }
                                }
                            }
                            catch (JasenParseException e) {
                                // couldn't parse.. just ignore it
                            }
                        }
                        else
                        {
                            // We have found a max result...
                            break;
                        }
                    }
          }
          else
          {
              header = headers[0];
              // Parse the single header
                    try {
                  pdata = parser.parse(header,engine.getInetAddressResolver())
                  fResult = checkSender(pdata, engine)
                 
                        if(fResult != EMPTY) {
                            isAbsolute = absolute;
                        }                 
                    }
                    catch (JasenParseException e) {
                        // couldn't parse.. just ignore it
                    }
          }
        }
    }
    catch (MessagingException e) {
      throw new JasenException(e);
    }
   
    if(fResult == EMPTY) {
        fResult = unknown;
    }

    result.setProbability(fResult);
    result.setAbsolute(isAbsolute);

    logger.debug("RBLScanner returned " + fResult + ", Absolute: " + isAbsolute);

    return result;
  }
View Full Code Here

    /*
     *  (non-Javadoc)
     * @see org.jasen.interfaces.JasenPlugin#test(org.jasen.core.Jasen, javax.mail.internet.MimeMessage, org.jasen.interfaces.JasenMessage, org.jasen.interfaces.ParserData, org.jasen.interfaces.ReceivedHeaderParser)
     */
    public JasenTestResult test(Jasen engine, MimeMessage rawMessage, JasenMessage parsedMessage, ParserData data, ReceivedHeaderParser parser) throws JasenException {
        ProbabilityTestResult result = new ProbabilityTestResult();
        result.setProbability(lowProb);

        if(keywords != null) {

            // Get all the plain text parts
            StringBuffer buffer = new StringBuffer();

            try
            {
                buffer.append(rawMessage.getSubject());
            }
            catch (MessagingException ignore)
            {
                ErrorHandlerBroker.getInstance().getErrorHandler().handleException(ignore);
            }

            buffer.append(" ");
            buffer.append(data.getHtmlAsText());
            buffer.append(" ");
            buffer.append(data.getTextParsed());

            String allText = buffer.toString().toLowerCase();

            if(TextUtils.matchKeyword(keywords, allText)) {
                result.setProbability(highProb);
            }

        }

        return result;
View Full Code Here

    /*
     *  (non-Javadoc)
     * @see org.jasen.interfaces.JasenPlugin#test(org.jasen.core.Jasen, javax.mail.internet.MimeMessage, org.jasen.interfaces.JasenMessage, org.jasen.interfaces.ParserData, org.jasen.interfaces.ReceivedHeaderParser)
     */
    public JasenTestResult test(Jasen engine, MimeMessage rawMessage, JasenMessage parsedMessage, ParserData data, ReceivedHeaderParser parser) throws JasenException {
        ProbabilityTestResult result = new ProbabilityTestResult ();

        // Num words...(only look in html)
        int numHtmlWords = 0;
        int numImages = 0;

        // For performance reasons, we aren't going to bother splitting, removing stop words etc
        // Instead, we simply assume that the total chars represents a number of average sized
        // words
        if(data.getHtmlAsText() != null) {
            numHtmlWords = data.getHtmlAsText().length() / wordSize; // average word size
           
        }

        if(data instanceof StandardParserData) {
            numImages = ((StandardParserData)data).getImageCount();
        }

        if(numImages == 0) {
            result.setProbability(lowProb);
        }
        else if (numHtmlWords == 0) {
            result.setProbability(highProb);
        }
        else {
            float prob = (((float)numImages / (float)numHtmlWords));

            if(prob >= ratio) {
                result.setProbability(highProb);
            }
            else if(prob <= lowProb) {
                result.setProbability(lowProb);
            }
            else {
                result.setProbability(prob);
            }
        }

        return result;
    }
View Full Code Here

    /*
     * (non-Javadoc)
     * @see org.jasen.interfaces.JasenPlugin#test(org.jasen.core.Jasen, javax.mail.internet.MimeMessage, org.jasen.interfaces.JasenMessage, org.jasen.interfaces.ParserData, org.jasen.interfaces.ReceivedHeaderParser)
     */
    public JasenTestResult test(Jasen engine, MimeMessage rawMessage, JasenMessage parsedMessage, ParserData data, ReceivedHeaderParser parser) throws JasenException {
        ProbabilityTestResult result = new ProbabilityTestResult();
        result.setProbability(0.5f);
        return result;
    }
View Full Code Here

    /* (non-Javadoc)
     * @see org.jasen.interfaces.JasenPlugin#test(org.jasen.core.Jasen, javax.mail.internet.MimeMessage, org.jasen.interfaces.JasenMessage, org.jasen.interfaces.ParserData, org.jasen.interfaces.ReceivedHeaderParser)
     */
    public JasenTestResult test(Jasen engine, MimeMessage rawMessage, JasenMessage parsedMessage, ParserData data, ReceivedHeaderParser parser) throws JasenException {

        ProbabilityTestResult result = new ProbabilityTestResult();

        try
        {
            if(isEmpty(rawMessage.getSubject()) && isEmpty(parsedMessage.getHtmlPart()) && isEmpty(parsedMessage.getTextPart())) {
                result.setProbability(max);
            }
            else
            {
                result.setProbability(min);
            }
        }
        catch (MessagingException e)
        {
            throw new JasenException(e);
View Full Code Here

    /* (non-Javadoc)
     * @see org.jasen.interfaces.JasenPlugin#test(org.jasen.core.Jasen, javax.mail.internet.MimeMessage, org.jasen.interfaces.JasenMessage, org.jasen.interfaces.ParserData)
     */
    public JasenTestResult test(Jasen engine, MimeMessage rawMessage, JasenMessage parsedMessage, ParserData data, ReceivedHeaderParser parser) throws JasenException {

        ProbabilityTestResult result = new ProbabilityTestResult();

        // Check the from address against the envelope sender
        if(parsedMessage.getFrom() == null || parsedMessage.getEnvelopeSender() == null) {
            result.setProbability(medProb); // unknown
        }
        else if(parsedMessage.getFrom().getAddress().equals(parsedMessage.getEnvelopeSender())) {


            // They match... check the reply to...
            try
            Address[] reply;
                reply = rawMessage.getReplyTo();
                if(reply != null && reply.length > 0) {
                    String strReplyTo = MimeUtils.toInternetAddress(reply[0]).getAddress();

                    // Just compare the domains...
                    String strReplyToDomain = MimeUtils.getDomainFromAddress(strReplyTo);
                    String strSenderDomain = MimeUtils.getDomainFromAddress(parsedMessage.getEnvelopeSender());

                    if(strReplyToDomain.equalsIgnoreCase(strSenderDomain)) {
                        // low
                        result.setProbability(lowProb);
                    }
                    else
                    {
                        // medium
                        result.setProbability(medProb);
                    }
                }
            }
            catch (MessagingException e)
            {
                ErrorHandlerBroker.getInstance().getErrorHandler().handleException(e);
                // Assume they are ok
                result.setProbability(lowProb);
            }
        }
        else {
            result.setProbability(highProb);
        }

        return result;
    }
View Full Code Here

     (non-Javadoc)
     * @see org.jasen.interfaces.JasenPlugin#test(org.jasen.core.Jasen, javax.mail.internet.MimeMessage, org.jasen.interfaces.JasenMessage, org.jasen.interfaces.ParserData, org.jasen.interfaces.ReceivedHeaderParser)
     */
    public JasenTestResult test(Jasen engine, MimeMessage rawMessage, JasenMessage parsedMessage, ParserData data, ReceivedHeaderParser parser) throws JasenException {

        ProbabilityTestResult result = new ProbabilityTestResult();


        try
        {
            // Get the From address
            String address = null;
            try
            {
                address = MimeUtils.toInternetAddress(rawMessage.getFrom()[0], false).getAddress();

            }
            catch (AddressException e)
            {
                // Ignore, this will be handled below
            }


            if(address == null || !MimeUtils.isValidAddress(address)) {
                // Use the actual sender
                address = parsedMessage.getEnvelopeSender();
            }


            // Get the first header line
            String header = rawMessage.getHeader("Received")[0];

            try
            {
                if(MimeUtils.verifySenderAddress(engine.getDnsResolver(), engine.getInetAddressResolver(), parser, header, address)) {
                    result.setProbability(lowProb);
                }
                else
                {
                    result.setProbability(highProb);
                }
            }
            catch (UnknownHostException e)
            {
                // No host... set to high
                result.setProbability(highProb);
            }
            catch (DNSException e)
            {
                // Error during DNS lookup?
                result.setProbability(medProb);
            }
        }
        catch (AddressException e)
        {
            throw new JasenException(e);
View Full Code Here

TOP

Related Classes of org.jasen.core.ProbabilityTestResult

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.