在Log4j中实现日志的Email自动发送

LOG4J为输出日志信息提供了非常丰富的功能,如输出到控制台、文件、HMTL文件、远程数据、JMS、EMAIL等,个人认为EMAIL自动发送功能,可以及时把FATAL级的信息第一时间通知负责人 ,尽早排除错误,维护程序的正常运行有很大的作用。

但EMAIL有时也并不能及时到达负责人那里,如果能提花MSN的接口就好了,当然这是后话,不过我到是有这个想法,自己做个扩展Appender来实现。

LOG4J的输出方案里面提供了一个SMTPAppender,用来自动发送日志到指定的Email。但是到目前为止,最高的版本1.3Alpha,但是依然没有解决发送邮件时进行认识的问题,虽然需要增加几段简单的代码,但不明白那些大牛真的不知道还是没有功夫来改进这个功能,现在几乎所有的邮箱发送邮件都需要认证的。既然如此,我们只能自己来改进它了。

由于SMTPAppender的属性都是私有的,没有给我们留下继承的可能,所以我们选择直接从它的父类AppenderSkeleton来继承,然后把SMTPAppender的源代码全部COPY过来,增加如下EMAIL用户名、密码和是否需要认证的标记:

//  define auth info
     private  String smtpUsername;

    
private  String smtpPassword;

    
private  String smtpAuth;

在activateOptions()方法中增加验证的代码:

/* ADD auth code */
        
if  (smtpAuth  !=   null   &&  smtpAuth.trim().equals( " true " ))  {
            props.put(
"mail.smtp.auth""true");
            authenticator 
= new Authenticator() {
                
protected PasswordAuthentication getPasswordAuthentication() {
                    
return new PasswordAuthentication(smtpUsername, smtpPassword);
                }

            }
;
        }


        
//  Session session = Session.getInstance(props, null);
        Session session  =  Session.getInstance(props, authenticator);

如果发送的日志信息涉及到中文字符,还必须设定发送内容的编码,在sendBuffer()方法如修改设置content为如下所示,把编码方式指定为GB2312格式:

part.setContent(sbuf.toString(), layout.getContentType() + " ;charset=GB2312 " );

最后添加三个新加属性的GETTER和SETTER,全部源代码如下所示:

package  com.gftech.log4j;

import  java.util.Date;
import  java.util.Properties;

import  javax.mail.Authenticator;
import  javax.mail.Message;
import  javax.mail.MessagingException;
import  javax.mail.Multipart;
import  javax.mail.PasswordAuthentication;
import  javax.mail.Session;
import  javax.mail.Transport;
import  javax.mail.internet.AddressException;
import  javax.mail.internet.InternetAddress;
import  javax.mail.internet.MimeBodyPart;
import  javax.mail.internet.MimeMessage;
import  javax.mail.internet.MimeMultipart;

import  org.apache.log4j.AppenderSkeleton;
import  org.apache.log4j.Level;
import  org.apache.log4j.helpers.CyclicBuffer;
import  org.apache.log4j.helpers.LogLog;
import  org.apache.log4j.helpers.OptionConverter;
import  org.apache.log4j.spi.ErrorCode;
import  org.apache.log4j.spi.LoggingEvent;
import  org.apache.log4j.spi.TriggeringEventEvaluator;

/**
 * SMTP Appender扩展,增加对邮件认证的支持
 * 
 * 
@author lenovo
 * 
 
*/

public   class  SMTPExtAppender  extends  AppenderSkeleton  {
    
private String to;

    
private String from;

    
private String subject;

    
private String smtpHost;

    
// define auth info
    private String smtpUsername;

    
private String smtpPassword;

    
private String smtpAuth;

    
// --------------------------

    
private int bufferSize = 512;

    
private boolean locationInfo = false;

    
protected CyclicBuffer cb = new CyclicBuffer(bufferSize);

    
protected Message msg;

    
protected TriggeringEventEvaluator evaluator;

    
/**
     * The default constructor will instantiate the appender with a
     * {
@link TriggeringEventEvaluator} that will trigger on events with level
     * ERROR or higher.
     
*/

    
public SMTPExtAppender() {
        
this(new DefaultEvaluator());
    }


    
/**
     * Use evaluator passed as parameter as the {
@link
     * TriggeringEventEvaluator} for this SMTPAppender.
     
*/

    
public SMTPExtAppender(TriggeringEventEvaluator evaluator) {
        
this.evaluator = evaluator;
    }


    
/**
     * Activate the specified options, such as the smtp host, the recipient,
     * from, etc.
     
*/

    
public void activateOptions() {
        Properties props 
= new Properties(System.getProperties());
        Authenticator authenticator 
= null;

        
if (smtpHost != null)
            props.put(
"mail.smtp.host", smtpHost);

        
/* ADD auth code */
        
if (smtpAuth != null && smtpAuth.trim().equals("true")) {
            props.put(
"mail.smtp.auth""true");
            authenticator 
= new Authenticator() {
                
protected PasswordAuthentication getPasswordAuthentication() {
                    
return new PasswordAuthentication(smtpUsername, smtpPassword);
                }

            }
;
        }


        
// Session session = Session.getInstance(props, null);
        Session session = Session.getInstance(props, authenticator);

        
// session.setDebug(true);
        msg = new MimeMessage(session); 
         
        
try {
            
if (from != null)
                msg.setFrom(getAddress(from));
            
else
                msg.setFrom();

            msg.setRecipients(Message.RecipientType.TO, parseAddress(to));
            
if (subject != null)
                msg.setSubject(subject);
        }
 catch (MessagingException e) {
            LogLog.error(
"Could not activate SMTPAppender options.", e);
        }

    }


    
/**
     * Perform SMTPAppender specific appending actions, mainly adding the event
     * to a cyclic buffer and checking if the event triggers an e-mail to be
     * sent.
     
*/

    
public void append(LoggingEvent event) {

        
if (!checkEntryConditions()) {
            
return;
        }


        event.getThreadName();
        event.getNDC();
        
if (locationInfo) {
            event.getLocationInformation();
        }

        cb.add(event);
        
if (evaluator.isTriggeringEvent(event)) {
            sendBuffer();
        }

    }


    
/**
     * This method determines if there is a sense in attempting to append.
     * 
     * 


     * It checks whether there is a set output target and also if there is a set
     * layout. If these checks fail, then the boolean value false
     * is returned.
     */
    
protected boolean checkEntryConditions() {
        
if (this.msg == null{
            errorHandler.error(
"Message object not configured.");
            
return false;
        }


        
if (this.evaluator == null{
            errorHandler.error(
"No TriggeringEventEvaluator is set for appender [" + name + "].");
            
return false;
        }


        
if (this.layout == null{
            errorHandler.error(
"No layout set for appender named [" + name + "].");
            
return false;
        }

        
return true;
    }


    
synchronized public void close() {
        
this.closed = true;
    }


    InternetAddress getAddress(String addressStr) 
{
        
try {
            
return new InternetAddress(addressStr);
        }
 catch (AddressException e) {
            errorHandler.error(
"Could not parse address [" + addressStr + "].", e, ErrorCode.ADDRESS_PARSE_FAILURE);
            
return null;
        }

    }


    InternetAddress[] parseAddress(String addressStr) 
{
        
try {
            
return InternetAddress.parse(addressStr, true);
        }
 catch (AddressException e) {
            errorHandler.error(
"Could not parse address [" + addressStr + "].", e, ErrorCode.ADDRESS_PARSE_FAILURE);
            
return null;
        }

    }


    
/**
     * Returns value of the To option.
     
*/

    
public String getTo() {
        
return to;
    }


    
/**
     * The SMTPAppender requires a {
@link org.apache.log4j.Layout
     * layout}.
     
*/

    
public boolean requiresLayout() {
        
return true;
    }


    
/**
     * Send the contents of the cyclic buffer as an e-mail message.
     
*/

    
protected void sendBuffer() {

        
// Note: this code already owns the monitor for this
        
// appender. This frees us from needing to synchronize on 'cb'.
        try {
            MimeBodyPart part 
= new MimeBodyPart();

            StringBuffer sbuf 
= new StringBuffer();
            String t 
= layout.getHeader();
            
if (t != null)
                sbuf.append(t);
            
int len = cb.length();
            
for (int i = 0; i < len; i++{
                
// sbuf.append(MimeUtility.encodeText(layout.format(cb.get())));
                LoggingEvent event = cb.get();
                sbuf.append(layout.format(event));
                
if (layout.ignoresThrowable()) {
                    String[] s 
= event.getThrowableStrRep();
                    
if (s != null{
                        
for (int j = 0; j < s.length; j++{
                            sbuf.append(s[j]);
                        }

                    }

                }

            }

            t 
= layout.getFooter();
            
if (t != null)
                sbuf.append(t);
            part.setContent(sbuf.toString(), layout.getContentType()
+";charset=GB2312");

            Multipart mp 
= new MimeMultipart();
            mp.addBodyPart(part);
            msg.setContent(mp );  
            msg.setSentDate(
new Date());
            Transport.send(msg);
        }
 catch (Exception e) {
            LogLog.error(
"Error occured while sending e-mail notification.", e);
        }

    }


    
/**
     * Returns value of the EvaluatorClass option.
     
*/

    
public String getEvaluatorClass() {
        
return evaluator == null ? null : evaluator.getClass().getName();
    }


    
/**
     * Returns value of the From option.
     
*/

    
public String getFrom() {
        
return from;
    }


    
/**
     * Returns value of the Subject option.
     
*/

    
public String getSubject() {
        
return subject;
    }


    
/**
     * The From option takes a string value which should be a e-mail
     * address of the sender.
     
*/

    
public void setFrom(String from) {
        
this.from = from;
    }


    
/**
     * The Subject option takes a string value which should be a the
     * subject of the e-mail message.
     
*/

    
public void setSubject(String subject) {
        
this.subject = subject;
    }


    
/**
     * The BufferSize option takes a positive integer representing the
     * maximum number of logging events to collect in a cyclic buffer. When the
     * BufferSize is reached, oldest events are deleted as new
     * events are added to the buffer. By default the size of the cyclic buffer
     * is 512 events.
     
*/

    
public void setBufferSize(int bufferSize) {
        
this.bufferSize = bufferSize;
        cb.resize(bufferSize);
    }


    
/**
     * The SMTPHost option takes a string value which should be a the
     * host name of the SMTP server that will send the e-mail message.
     
*/

    
public void setSMTPHost(String smtpHost) {
        
this.smtpHost = smtpHost;
    }


    
/**
     * Returns value of the SMTPHost option.
     
*/

    
public String getSMTPHost() {
        
return smtpHost;
    }


    
/**
     * The To option takes a string value which should be a comma
     * separated list of e-mail address of the recipients.
     
*/

    
public void setTo(String to) {
        
this.to = to;
    }


    
/**
     * Returns value of the BufferSize option.
     
*/

    
public int getBufferSize() {
        
return bufferSize;
    }


    
/**
     * The EvaluatorClass option takes a string value representing the
     * name of the class implementing the {
@link TriggeringEventEvaluator}
     * interface. A corresponding object will be instantiated and assigned as
     * the triggering event evaluator for the SMTPAppender.
     
*/

    
public void setEvaluatorClass(String value) {
        evaluator 
= (TriggeringEventEvaluator) OptionConverter.instantiateByClassName(value,
                TriggeringEventEvaluator.
class, evaluator);
    }


    
/**
     * The LocationInfo option takes a boolean value. By default, it is
     * set to false which means there will be no effort to extract the location
     * information related to the event. As a result, the layout that formats
     * the events as they are sent out in an e-mail is likely to place the wrong
     * location information (if present in the format).
     * 
     * 


     * Location information extraction is comparatively very slow and should be
     * avoided unless performance is not a concern.
     */
    
public void setLocationInfo(boolean locationInfo) {
        
this.locationInfo = locationInfo;
    }


    
/**
     * Returns value of the LocationInfo option.
     
*/

    
public boolean getLocationInfo() {
        
return locationInfo;
    }


    
public String getSMTPAuth() {
        
return smtpAuth;
    }


    
/**
     * 设置是否进行SMTP认证。
     
*/

    
public void setSMTPAuth(String smtpAuth) {
        
this.smtpAuth = smtpAuth;
    }


    
/**
     * Returns value of the SMTPPassword option.
     * 
     * 
@return SMTPPassword
     
*/

    
public String getSMTPPassword() {
        
return smtpPassword;
    }


    
/**
     * 设置访问SMTP服务器的密码。
     
*/

    
public void setSMTPPassword(String smtpPassword) {
        
this.smtpPassword = smtpPassword;
    }


    
/**
     * Returns value of the SMTPUsername option.
     * 
     * 
@return SMTPUsername
     
*/

    
public String getSMTPUsername() {
        
return smtpUsername;
    }


    
/**
     * 设置访问SMTP服务器的用户名。
     
*/

    
public void setSMTPUsername(String smtpUsername) {
        
this.smtpUsername = smtpUsername;
    }


}


class  DefaultEvaluator  implements  TriggeringEventEvaluator  {
    
/**
     * Is this event the e-mail triggering event?
     * 
     * 


     * This method returns true, if the event level has ERROR
     * level or higher. Otherwise it returns false.
     */
    
public boolean isTriggeringEvent(LoggingEvent event) {
        
return event.getLevel().isGreaterOrEqual(Level.ERROR);
    }

}

 

此时,你只需要加在配置文件中按如下方式设置输出方案即可:

log4j.rootLogger  =  DEBUG , A6

#A6 send log info(ERROR or Fatal) by Email
log4j.appender.A6 
=  com.gftech.log4j.SMTPExtAppender
log4j.appender.A6.Threshold
= FATAL
log4j.appender.A6.SMTPHost
= smtp .126 .com
log4j.appender.A6.to
= xxx@ 126 .com
log4j.appender.A6.from
= xxx@ 126 .com
log4j.appender.A6.SMTPAuth
= true
log4j.appender.A6.SMTPUsername
= your name
log4j.appender.A6.SMTPPassword
= your pwd
log4j.appender.A6.Subject
= Log4J Message
log4j.appender.A6.layout
= org.apache.log4j.PatternLayout
log4j.appender.A6.layout.ConversionPattern
=   [ %d{HH:mm:ss} ]   [ %t ]  %c - %-5p - %m%n

 

需要注意的是,LOG4J的SMTPAppender引用的是JAVAMAIL邮件发送API,所以在使用时首先把把mai.jar &activation.jar两个压缩包导入到工程中,一切OK,就可以自动收到日志的EMAIL通知了。

另外,在用Ant打包的时候,如果是mail.jar和activation.jar和你自己的程序打成一个JAR文件,可能会出现Security异常,因为没有把这两个JAR文件中MANIFEST。MF中的安全认证信息打入到新的JAR中的缘故。此时你需要在Build文件当中把mail.jar activation.jar中MANIFEST。MF的所有Name &SHA1-Digest信息指明:

 

< target  name ="jar"  depends ="compile" >
        
< jar  destfile ="${distDir}dp.jar"  basedir ="${buildDir}" >

            
< manifest >
                
< attribute  name ="Built-By"  value ="sinboy"   />
                
< attribute  name ="Company"  value ="PUSHGET.Inc"   />
                
< attribute  name ="Main-Class"  value ="com.gftech.dp.run.DPMain"   />

                
< section  name ="javax/mail/search/SearchTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="SwGnDhIUmpZhfhq/FKkCQ9nD7ZE=" />
                
section >
                
< section  name ="javax/mail/SendFailedException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="XdCEygaIZQB9YrH2WIr4nPRYYk0=" />
                
section >
                
< section  name ="com/sun/mail/util/SocketFetcher.class" >
                    
< attribute  name ="SHA1-Digest"  value ="t1zb5tdpmoyCI6yvj3rbVCaUQsg=" />
                
section >
                
< section  name ="com/sun/mail/smtp/SMTPTransport.class" >
                    
< attribute  name ="SHA1-Digest"  value ="m7gR5cNHpfSkrnpb5eWLsBDfDMc=" />
                
section >
                
< section  name ="javax/mail/internet/ParameterList$Value.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Ba14JX9tBBfIz8Z8mfIrms2/Tg0=" />
                
section >
                
< section  name ="com/sun/mail/iap/ResponseHandler.class" >
                    
< attribute  name ="SHA1-Digest"  value ="yGvfD66wKBii8T3I6EC433zQTr8=" />
                
section >
                
< section  name ="javax/mail/StreamLoader.class" >
                    
< attribute  name ="SHA1-Digest"  value ="N7B+7bTB0kXU/jTZLFyPtmBiClw=" />
                
section >
                
< section  name ="javax/mail/PasswordAuthentication.class" >
                    
< attribute  name ="SHA1-Digest"  value ="uIlizmGvEBXRyn9L38dAqkg85Zg=" />
                
section >
                
< section  name ="javax/mail/event/ConnectionListener.class" >
                    
< attribute  name ="SHA1-Digest"  value ="r9kShgKGnR+pVozJlq0cfrdoer8=" />
                
section >
                
< section  name ="javax/mail/event/MessageCountEvent.class" >
                    
< attribute  name ="SHA1-Digest"  value ="d/bi4YLUlTL9hTGgHkClSiVcn0A=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/FLAGS.class" >
                    
< attribute  name ="SHA1-Digest"  value ="24lbvK78pA83CH1GNdcVjwzrLQk=" />
                
section >
                
< section  name ="com/sun/mail/util/QEncoderStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="RERq2YEAlJdRSASB1+/bRDUZ1jA=" />
                
section >
                
< section  name ="javax/mail/internet/AsciiOutputStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="p+y2kTfs8UNufg7ktfliwY20/2I=" />
                
section >
                
< section  name ="javax/mail/Authenticator.class" >
                    
< attribute  name ="SHA1-Digest"  value ="k3UFnUKoAt4IQtcdeEZtv+dm2Ds=" />
                
section >
                
< section  name ="javax/mail/event/TransportEvent.class" >
                    
< attribute  name ="SHA1-Digest"  value ="tnphK+ufr9sq8fbtt8GDX0mzeiE=" />
                
section >
                
< section  name ="com/sun/mail/imap/Utility.class" >
                    
< attribute  name ="SHA1-Digest"  value ="1D/KDAoDmWWgidnGn3sqI1PMFxk=" />
                
section >
                
< section  name ="javax/mail/search/NotTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="shuAXO/kFNlu/TmHgH3+ypJUeDU=" />
                
section >
                
< section  name ="com/sun/mail/iap/ParsingException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="7lhvqrFkYc9KjMaYjdnv0xifzys=" />
                
section >
                
< section  name ="javax/mail/Transport.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Y37lZMHK7Jq7CXa3PYZWQrO7yWI=" />
                
section >
                
< section  name ="com/sun/mail/imap/DefaultFolder$1.class" >
                    
< attribute  name ="SHA1-Digest"  value ="j32w2xWJUrHuObIfVEOgvehwSYs=" />
                
section >
                
< section  name ="javax/mail/internet/ParseException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="v4P7yGuAwE0DZupPQaSHaAdXS2U=" />
                
section >
                
< section  name ="javax/mail/util/SharedByteArrayInputStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="FWSJsKYWqxOtBYcrF3wUSQvH43s=" />
                
section >
                
< section  name ="com/sun/mail/imap/DefaultFolder$2.class" >
                    
< attribute  name ="SHA1-Digest"  value ="VGh1qpsH4KmYaCFfsAWwlVAYcsY=" />
                
section >
                
< section  name ="javax/mail/search/FromStringTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="BQY0XuBFVGCvEGAViY3HmVVM+cA=" />
                
section >
                
< section  name ="javax/mail/MessageContext.class" >
                    
< attribute  name ="SHA1-Digest"  value ="tJn3GN4+TAzDBPblIFDcIy3/bdU=" />
                
section >
                
< section  name ="javax/mail/search/IntegerComparisonTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Agg/d9pMeLnCLSEaCtbRelYYDfg=" />
                
section >
                
< section  name ="javax/mail/search/MessageNumberTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="alYBxQrpbhZ6q0rBpl2/lvlx7GA=" />
                
section >
                
< section  name ="javax/mail/FolderClosedException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="vYhnfKiXn2YoGyvHz+tguTfaIP0=" />
                
section >
                
< section  name ="com/sun/mail/imap/AppendUID.class" >
                    
< attribute  name ="SHA1-Digest"  value ="SLK9LVlF1fbl1V8CpPCSKZoT1Uw=" />
                
section >
                
< section  name ="javax/mail/Part.class" >
                    
< attribute  name ="SHA1-Digest"  value ="v8Ntk2UFlvj+LmGQ9XmkhnoHcy4=" />
                
section >
                
< section  name ="javax/mail/internet/ContentDisposition.class" >
                    
< attribute  name ="SHA1-Digest"  value ="/IeyuioYjDEmpU9R67nV6MW2baw=" />
                
section >
                
< section  name ="com/sun/mail/util/BEncoderStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="RCczqyNFbrCIw4exyiaRL4S8//E=" />
                
section >
                
< section  name ="com/sun/mail/imap/Rights.class" >
                    
< attribute  name ="SHA1-Digest"  value ="25nkoJpUi/dSVu+3LW4gFxTKPTE=" />
                
section >
                
< section  name ="javax/mail/search/SizeTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="VQU+xieSmnW6IKCZbxBGAGO72FI=" />
                
section >
                
< section  name ="javax/mail/internet/HeaderTokenizer.class" >
                    
< attribute  name ="SHA1-Digest"  value ="yqLVRsECSE3/XMcUvqgm3KQKrqY=" />
                
section >
                
< section  name ="javax/mail/Address.class" >
                    
< attribute  name ="SHA1-Digest"  value ="F0NqT2KxW+1J8lD0omnP9+w4gu4=" />
                
section >
                
< section  name ="javax/mail/Quota$Resource.class" >
                    
< attribute  name ="SHA1-Digest"  value ="4lI7yvUMS+i6fp+KBNVcdystC4U=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPMessage.class" >
                    
< attribute  name ="SHA1-Digest"  value ="rWS3NNtpiIh+RyFphG41OUrBf30=" />
                
section >
                
< section  name ="com/sun/mail/smtp/SMTPSendFailedException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Vbu794NrfTM/9wRntXvoEiHyWU4=" />
                
section >
                
< section  name ="com/sun/mail/iap/LiteralException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="k+vUzyDJboXXMQhihHHTH2rJxsA=" />
                
section >
                
< section  name ="javax/mail/internet/MailDateFormat.class" >
                    
< attribute  name ="SHA1-Digest"  value ="+kruG7hFxllbZyh9E99k1Kd3P/Q=" />
                
section >
                
< section  name ="com/sun/mail/util/TraceOutputStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="KahCJLc2hA4anc7AuBYGfRZ1tOM=" />
                
section >
                
< section  name ="com/sun/mail/smtp/SMTPSSLTransport.class" >
                    
< attribute  name ="SHA1-Digest"  value ="6U1CnwlO4l/cdSgmZzSpwNKl8EM=" />
                
section >
                
< section  name ="javax/mail/event/MessageCountAdapter.class" >
                    
< attribute  name ="SHA1-Digest"  value ="HvTYZB0DcHn/CFdbKenl1+3v5Sk=" />
                
section >
                
< section  name ="com/sun/mail/util/UUDecoderStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="+Wb2QOPVh4TRngNVqjtEzhsMhqc=" />
                
section >
                
< section  name ="com/sun/mail/util/CRLFOutputStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="nR7HVOvNjd3ayK53T8sO5mwM5yQ=" />
                
section >
                
< section  name ="com/sun/mail/util/LineOutputStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="jWkOmR0BbPRldQEj7G//xddq9Po=" />
                
section >
                
< section  name ="com/sun/mail/pop3/SharedByteArrayOutputStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="jkrt4GJ8/IM29mg9mQyLcxCY120=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/INTERNALDATE.class" >
                    
< attribute  name ="SHA1-Digest"  value ="OqU9Z7ln6JrVZ58ohm6Ocx1J8vs=" />
                
section >
                
< section  name ="javax/mail/ReadOnlyFolderException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="EjoXZIVbzRayE7vGgZYw8bFqAZI=" />
                
section >
                
< section  name ="javax/mail/MessagingException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="1rm4zZYMd44J3zuiUslO5YaDy0E=" />
                
section >
                
< section  name ="com/sun/mail/iap/ResponseInputStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="GiRkycsTxtR567cZA8joTaFi+Ys=" />
                
section >
                
< section  name ="com/sun/mail/pop3/Protocol.class" >
                    
< attribute  name ="SHA1-Digest"  value ="5/PoznIV6yAFCZaAa0bJBpy8Zaw=" />
                
section >
                
< section  name ="javax/mail/internet/ParameterList.class" >
                    
< attribute  name ="SHA1-Digest"  value ="s4OQRwSPP4stt14uzW5PUIe0Y7g=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/IMAPAddress.class" >
                    
< attribute  name ="SHA1-Digest"  value ="x4IZM0hO4K5454CViPWheuJLPWs=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPNestedMessage.class" >
                    
< attribute  name ="SHA1-Digest"  value ="q7iSelvjmet+Dgee9o80/XlS/Nk=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$8.class" >
                    
< attribute  name ="SHA1-Digest"  value ="NCnDNVxAzVd4+qFXHW+UPsNQtrQ=" />
                
section >
                
< section  name ="javax/mail/Service.class" >
                    
< attribute  name ="SHA1-Digest"  value ="E9JdtYtLsOJugORGBd5rY32gqOU=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/FetchResponse.class" >
                    
< attribute  name ="SHA1-Digest"  value ="AUVCzHOTr4SqTNs/zVtHLt6wUoY=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$9.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Qnbi4cEe9Qkmcu7KJUT/NsrPVI4=" />
                
section >
                
< section  name ="javax/mail/internet/InternetHeaders$matchEnum.class" >
                    
< attribute  name ="SHA1-Digest"  value ="S0qWuwt1zjRA8+2MZ9FzHlKdqeY=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/BODY.class" >
                    
< attribute  name ="SHA1-Digest"  value ="2tbY3A3j+m4RxkUWtD0XCYdNY3c=" />
                
section >
                
< section  name ="javax/mail/Session$5.class" >
                    
< attribute  name ="SHA1-Digest"  value ="FBdDiCuPRTFgx+jUzolhqP+uY4E=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPSSLStore.class" >
                    
< attribute  name ="SHA1-Digest"  value ="sfXvpQ/UPJtPREc0+LCbmMBil+8=" />
                
section >
                
< section  name ="javax/mail/search/OrTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="yg3h4Rxh5CZkkdooxp+sG0PpzmY=" />
                
section >
                
< section  name ="javax/mail/search/ComparisonTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="L7Yiwqtu072QHMQKA9InH4v2HGU=" />
                
section >
                
< section  name ="javax/mail/internet/MimeMessage$RecipientType.class" >
                    
< attribute  name ="SHA1-Digest"  value ="mfT1n4tOAu8ypXfrNG1m/SDXVVg=" />
                
section >
                
< section  name ="javax/mail/Session$6.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Joo7rO6tUOSLZN/8miuRuUQ+24s=" />
                
section >
                
< section  name ="javax/mail/AuthenticationFailedException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="I1625Jhgvl2oJ9a/02NjeVmkHdo=" />
                
section >
                
< section  name ="com/sun/mail/imap/Utility$Condition.class" >
                    
< attribute  name ="SHA1-Digest"  value ="8NsldZIZXDNbzlM9+p70Kn4sM5U=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/MailboxInfo.class" >
                    
< attribute  name ="SHA1-Digest"  value ="fHUgeJxgcJOXa9MM7ODLg02SlEg=" />
                
section >
                
< section  name ="javax/mail/Session$7.class" >
                    
< attribute  name ="SHA1-Digest"  value ="vRzS94dOXlCYlXCzgDG3doY2Tr0=" />
                
section >
                
< section  name ="com/sun/mail/handlers/multipart_mixed.class" >
                    
< attribute  name ="SHA1-Digest"  value ="+qsWpTL6/4oDwuWPwKA75EStKjA=" />
                
section >
                
< section  name ="com/sun/mail/pop3/POP3SSLStore.class" >
                    
< attribute  name ="SHA1-Digest"  value ="5yzvlE7d7Aw4SyP8EaKrojXDX3Y=" />
                
section >
                
< section  name ="com/sun/mail/pop3/POP3Folder.class" >
                    
< attribute  name ="SHA1-Digest"  value ="d+8iiqO13asArUbv7FS3EUMVf3k=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$6.class" >
                    
< attribute  name ="SHA1-Digest"  value ="NRrkXkmS0ZSFdFBzaZozv5w2cW4=" />
                
section >
                
< section  name ="com/sun/mail/imap/DefaultFolder.class" >
                    
< attribute  name ="SHA1-Digest"  value ="3q24N9NENff+yXuTtIu7ZGx4qn4=" />
                
section >
                
< section  name ="javax/mail/QuotaAwareStore.class" >
                    
< attribute  name ="SHA1-Digest"  value ="IZLYiL3EQAOF/IbDfod+LApLwNM=" />
                
section >
                
< section  name ="com/sun/mail/util/ASCIIUtility.class" >
                    
< attribute  name ="SHA1-Digest"  value ="CMrJ7jaTOyOPrwiYX0ZBPWVW7ro=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$7.class" >
                    
< attribute  name ="SHA1-Digest"  value ="+QsnrLRR3Wt2dVmBV7yM+IjT9AU=" />
                
section >
                
< section  name ="javax/mail/search/AddressTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="/jaEC3NoAkYzg1xa4h8ZdXuuTd4=" />
                
section >
                
< section  name ="com/sun/mail/pop3/POP3Message.class" >
                    
< attribute  name ="SHA1-Digest"  value ="+vA0SHytAwpc7YdRyNpux2pwizA=" />
                
section >
                
< section  name ="com/sun/mail/util/BASE64DecoderStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="RFSwdy1TaIsT+5d4vaRBrwq27+o=" />
                
section >
                
< section  name ="javax/mail/internet/MailDateParser.class" >
                    
< attribute  name ="SHA1-Digest"  value ="lIkScp3/P2jWfHkMF6YM6Dl9uWY=" />
                
section >
                
< section  name ="javax/mail/util/SharedFileInputStream$SharedFile.class" >
                    
< attribute  name ="SHA1-Digest"  value ="AH+LilDol1KlaI3dJjnTba7AURw=" />
                
section >
                
< section  name ="javax/mail/Session$3.class" >
                    
< attribute  name ="SHA1-Digest"  value ="8lQ7jGQ3bIZdy+C90142yYnhZWA=" />
                
section >
                
< section  name ="javax/mail/Multipart.class" >
                    
< attribute  name ="SHA1-Digest"  value ="LeNxzsAMZVcJOno0atpa0kjAgS8=" />
                
section >
                
< section  name ="javax/mail/internet/MimePart.class" >
                    
< attribute  name ="SHA1-Digest"  value ="ZfiU0V88g9bAM4ciN0v0MV+vbuo=" />
                
section >
                
< section  name ="javax/mail/Folder$TerminatorEvent.class" >
                    
< attribute  name ="SHA1-Digest"  value ="aewfzfq4RnH0sjhghnJI2wn/o6Q=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/Namespaces.class" >
                    
< attribute  name ="SHA1-Digest"  value ="8nWrw5x/n8XSImF+k5byg1HGpYg=" />
                
section >
                
< section  name ="javax/mail/internet/UniqueValue.class" >
                    
< attribute  name ="SHA1-Digest"  value ="mKfhPmIxaYb399Wv+BVEOHZt8FY=" />
                
section >
                
< section  name ="javax/mail/Session$4.class" >
                    
< attribute  name ="SHA1-Digest"  value ="U8QyRwul2hu824mF9cUvGrBUFe0=" />
                
section >
                
< section  name ="com/sun/mail/pop3/Response.class" >
                    
< attribute  name ="SHA1-Digest"  value ="+aAu+JdeCVY0h1mjHfCNWABM37Q=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$3.class" >
                    
< attribute  name ="SHA1-Digest"  value ="4we1LKF7W2JytseheS1g0nUgkL8=" />
                
section >
                
< section  name ="javax/mail/internet/MimeUtility.class" >
                    
< attribute  name ="SHA1-Digest"  value ="JjlO7asnqVITwCfVrbA1STgXz6A=" />
                
section >
                
< section  name ="javax/mail/internet/SharedInputStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="cd1RnW9/RIsq6sqHpaSduNjlYEI=" />
                
section >
                
< section  name ="com/sun/mail/iap/ConnectionException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="tQxsOOqed968o8ZOOypAwjBElcM=" />
                
section >
                
< section  name ="javax/mail/event/TransportListener.class" >
                    
< attribute  name ="SHA1-Digest"  value ="gQ1Z41tJDKnIXydxMeSllBIZS3g=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$4.class" >
                    
< attribute  name ="SHA1-Digest"  value ="A4wsFdQfqGLKc/O2odaxNY7FFp4=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/ListInfo.class" >
                    
< attribute  name ="SHA1-Digest"  value ="T/VMdqBM12ac1UiOvMqNMdQOAzE=" />
                
section >
                
< section  name ="javax/mail/internet/ParameterList$ParamEnum.class" >
                    
< attribute  name ="SHA1-Digest"  value ="iUN133n7SUEqaGgr7TEtEJ/b5/s=" />
                
section >
                
< section  name ="com/sun/mail/handlers/message_rfc822.class" >
                    
< attribute  name ="SHA1-Digest"  value ="rd1N1+wdjK8QarQwz3yDBIhqOfM=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/SearchSequence.class" >
                    
< attribute  name ="SHA1-Digest"  value ="7bZKdWN1ueHm3aMPL3dlc1l19hU=" />
                
section >
                
< section  name ="javax/mail/search/ReceivedDateTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="M3fCMCt3CO1xA6u07F+nsU853tE=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$17.class" >
                    
< attribute  name ="SHA1-Digest"  value ="qpIhBkn5vMyVrbo8+QhdlKEqDTY=" />
                
section >
                
< section  name ="com/sun/mail/iap/ByteArray.class" >
                    
< attribute  name ="SHA1-Digest"  value ="UYEtyuO19ytNZ48M2wYWRdHwx+E=" />
                
section >
                
< section  name ="javax/mail/search/RecipientStringTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="MRcnLcCXpcSo2oDVpyVwWTemYko=" />
                
section >
                
< section  name ="javax/mail/event/MessageChangedEvent.class" >
                    
< attribute  name ="SHA1-Digest"  value ="8CU6Wnq+3ja6TXnZFYRgkXUtiTU=" />
                
section >
                
< section  name ="javax/mail/internet/MimeMessage.class" >
                    
< attribute  name ="SHA1-Digest"  value ="b7Tj4xackzVl0stsHYCjnzX1axM=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$5.class" >
                    
< attribute  name ="SHA1-Digest"  value ="nv1Jam2kffa50ksm/6zYFPcINsI=" />
                
section >
                
< section  name ="javax/mail/search/BodyTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="qmMvZum/txPI7r3J0FBWrJKrMTA=" />
                
section >
                
< section  name ="javax/mail/internet/MimeUtility$1$NullInputStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="JJqErfrREMxAZRJmVnSjUesoHfY=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$18.class" >
                    
< attribute  name ="SHA1-Digest"  value ="UFNk31lbEhl0XsCYppoyQeElBQc=" />
                
section >
                
< section  name ="javax/mail/Session$1.class" >
                    
< attribute  name ="SHA1-Digest"  value ="QwGMplNAXcUCRnRl4u51LY51XwY=" />
                
section >
                
< section  name ="com/sun/mail/handlers/text_xml.class" >
                    
< attribute  name ="SHA1-Digest"  value ="nS6uUygQlvCN0c/9SkUn4HLUjPg=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/MessageSet.class" >
                    
< attribute  name ="SHA1-Digest"  value ="61RYkwDm5QMJaiYQ63jInOSGLJk=" />
                
section >
                
< section  name ="javax/mail/Header.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Tp0KFn1OXdK19kwSyOPMfsEKfrk=" />
                
section >
                
< section  name ="javax/mail/event/StoreEvent.class" >
                    
< attribute  name ="SHA1-Digest"  value ="RYsdWisFbk2MNW/9JPOHrj0VyKM=" />
                
section >
                
< section  name ="javax/mail/event/FolderListener.class" >
                    
< attribute  name ="SHA1-Digest"  value ="MZh1iWbs74JoI7+NGpluKyaNJgo=" />
                
section >
                
< section  name ="com/sun/mail/pop3/DefaultFolder.class" >
                    
< attribute  name ="SHA1-Digest"  value ="V+mB7aIDJOH9jxToux/1eEhuLHw=" />
                
section >
                
< section  name ="javax/mail/Session$2.class" >
                    
< attribute  name ="SHA1-Digest"  value ="6kZVG4oi02AtC5dvLbUS0WT1mVM=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$1.class" >
                    
< attribute  name ="SHA1-Digest"  value ="QzcphzG38nU+rM0vIPvw4pFDUuM=" />
                
section >
                
< section  name ="com/sun/mail/iap/Literal.class" >
                    
< attribute  name ="SHA1-Digest"  value ="tvJ76lsZrZ0AzIaZZXC4eGoWStw=" />
                
section >
                
< section  name ="com/sun/mail/handlers/image_jpeg.class" >
                    
< attribute  name ="SHA1-Digest"  value ="qy4H8xonRBzZ2cMwAKsrTc2ZLgY=" />
                
section >
                
< section  name ="javax/mail/Folder.class" >
                    
< attribute  name ="SHA1-Digest"  value ="sF77xp8LsPyKSW7p73nbPSvxd7M=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$2.class" >
                    
< attribute  name ="SHA1-Digest"  value ="a4ts23Bw+zsUWTd+COuzmorWVoA=" />
                
section >
                
< section  name ="javax/mail/Session.class" >
                    
< attribute  name ="SHA1-Digest"  value ="7ROzRaA5HLOqmJcdr+ugMjA68vA=" />
                
section >
                
< section  name ="javax/mail/search/MessageIDTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="9egi1cBrGxCnAT/nt2c2vsqmGGA=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/RFC822SIZE.class" >
                    
< attribute  name ="SHA1-Digest"  value ="d/wTUExj4/HBSszeWp3ZKR5mMTY=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPStore$ConnectionPool.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Co5a5aIqP+tCLxqDwHLeu4r9VVY=" />
                
section >
                
< section  name ="javax/mail/search/RecipientTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="6WjFJTB1+tm/vzYvVINjLIR0wBg=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$15.class" >
                    
< attribute  name ="SHA1-Digest"  value ="iUzgOfHNHUPcdxlwlbmAj8Tlu+w=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/Namespaces$Namespace.class" >
                    
< attribute  name ="SHA1-Digest"  value ="SH+KknJPgZyoVVg/GEEUbt5oZ1o=" />
                
section >
                
< section  name ="javax/mail/MessageAware.class" >
                    
< attribute  name ="SHA1-Digest"  value ="nI/sDijZ/+Rd8xB8oDMgoroD5kk=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$16.class" >
                    
< attribute  name ="SHA1-Digest"  value ="uX/2zXcT60bxHYjrajs0SIg+4jE=" />
                
section >
                
< section  name ="javax/mail/internet/InternetHeaders.class" >
                    
< attribute  name ="SHA1-Digest"  value ="KknmShCiuWLp5GMAEV7i5agodxI=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder.class" >
                    
< attribute  name ="SHA1-Digest"  value ="9GRKs5fE8f2Db9W7rX5Fizel1Qw=" />
                
section >
                
< section  name ="com/sun/mail/util/QPDecoderStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="GlKSBEPZpgNov/H6YChPswTTYiE=" />
                
section >
                
< section  name ="javax/mail/search/AndTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="FXr1XsdDoLz0Kk00/ddHINkQX30=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPBodyPart.class" >
                    
< attribute  name ="SHA1-Digest"  value ="wr7JtYG7pkJtACY+v3Ypc8F4gJ4=" />
                
section >
                
< section  name ="com/sun/mail/pop3/Status.class" >
                    
< attribute  name ="SHA1-Digest"  value ="HK+jHY/UPJLbwafgDLfgFgEMitA=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$12.class" >
                    
< attribute  name ="SHA1-Digest"  value ="eQAb0jIP39pQ0oVflgNq5/HZZr8=" />
                
section >
                
< section  name ="com/sun/mail/imap/LengthCounter.class" >
                    
< attribute  name ="SHA1-Digest"  value ="lfcMll/fvG13i/h2Cu9LgSClk0s=" />
                
section >
                
< section  name ="javax/mail/search/FromTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="FAD9Tuc6edC7o9nlaUpklmeXlSE=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$ProtocolCommand.class" >
                    
< attribute  name ="SHA1-Digest"  value ="2u3M2HaXIjC+bInGSGNqMS2ynzc=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$13.class" >
                    
< attribute  name ="SHA1-Digest"  value ="ZeI0kxj++3P1kC+lC1xlC55IcZ8=" />
                
section >
                
< section  name ="javax/mail/internet/ContentType.class" >
                    
< attribute  name ="SHA1-Digest"  value ="BIrWtJl6qDZGevNd4scZxlONoEY=" />
                
section >
                
< section  name ="com/sun/mail/iap/Protocol.class" >
                    
< attribute  name ="SHA1-Digest"  value ="sAMrCVpFeZfDY2HnjV1KyGn062o=" />
                
section >
                
< section  name ="javax/mail/event/MessageCountListener.class" >
                    
< attribute  name ="SHA1-Digest"  value ="EQlK4ADnuMCdSbQsKVox8Wj+GGA=" />
                
section >
                
< section  name ="com/sun/mail/iap/ProtocolException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="aS53TMp0sSzRykAizGbMKcW9sHA=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$14.class" >
                    
< attribute  name ="SHA1-Digest"  value ="aOjumhds151EPKnQw5L9L6V3orY=" />
                
section >
                
< section  name ="javax/mail/Provider.class" >
                    
< attribute  name ="SHA1-Digest"  value ="zX4cU1LcZd+MZvhliK62SIjxZvg=" />
                
section >
                
< section  name ="com/sun/mail/smtp/SMTPOutputStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="secQWppiEIWfToC6tuZYICahrI0=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/Item.class" >
                    
< attribute  name ="SHA1-Digest"  value ="U7m6WKKNaP+2fUkSWH4vHi0OBBU=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPMultipartDataSource.class" >
                    
< attribute  name ="SHA1-Digest"  value ="c0BlZB/wrBzmCGtLhdmBPlKXyBk=" />
                
section >
                
< section  name ="com/sun/mail/imap/ACL.class" >
                    
< attribute  name ="SHA1-Digest"  value ="3ib48HeOKm4mCNfy+yYi5citejc=" />
                
section >
                
< section  name ="com/sun/mail/smtp/SMTPMessage.class" >
                    
< attribute  name ="SHA1-Digest"  value ="J1lB13Paab7cgiQGrwUyH2uqF9s=" />
                
section >
                
< section  name ="javax/mail/internet/ParameterList$1.class" >
                    
< attribute  name ="SHA1-Digest"  value ="DVj/kfl4EYJJTUpQ8GL/Km8t4m8=" />
                
section >
                
< section  name ="javax/mail/EventQueue$QueueElement.class" >
                    
< attribute  name ="SHA1-Digest"  value ="YzB4vyzKWve/UP5OlE4QpY7zPv8=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/IMAPProtocol.class" >
                    
< attribute  name ="SHA1-Digest"  value ="ed1CUYQ1LXzsF/fH+XDRFNXSBcQ=" />
                
section >
                
< section  name ="javax/mail/search/SentDateTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="pCSzQTcy2sz7hWMjHemera3BVJQ=" />
                
section >
                
< section  name ="com/sun/mail/handlers/text_plain.class" >
                    
< attribute  name ="SHA1-Digest"  value ="q8z9PKsDB8rhAxBgECnRl36HfP4=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$FetchProfileItem.class" >
                    
< attribute  name ="SHA1-Digest"  value ="NPZU6nZmCgh3SjsdE8b9/etsepE=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$10.class" >
                    
< attribute  name ="SHA1-Digest"  value ="jwrPFcH82eeFDVb9Xw6FH2KMeWw=" />
                
section >
                
< section  name ="javax/mail/event/MessageChangedListener.class" >
                    
< attribute  name ="SHA1-Digest"  value ="D9QKAsUJJ2kq8fPlK2kcFLRusnY=" />
                
section >
                
< section  name ="com/sun/mail/util/QDecoderStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Qaz21LH8xYCJipPxldlVhokeDSw=" />
                
section >
                
< section  name ="com/sun/mail/imap/MessageLiteral.class" >
                    
< attribute  name ="SHA1-Digest"  value ="a+wMVNjGzKFSBP1v3Xg4hB01tEk=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPFolder$11.class" >
                    
< attribute  name ="SHA1-Digest"  value ="XMi+TWShZEz/biwiaLjAL/ERU44=" />
                
section >
                
< section  name ="com/sun/mail/util/UUEncoderStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="HLgw/1ANzn4MsRp+KGoDh/aOF14=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPMessage$1$FetchProfileCondition.class" >
                    
< attribute  name ="SHA1-Digest"  value ="g9ndX1sBK93FQxoyLJhXNV6TkUE=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/BASE64MailboxEncoder.class" >
                    
< attribute  name ="SHA1-Digest"  value ="7VvSMvnYBePvZUaQWxIYjfnE54Q=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/ENVELOPE.class" >
                    
< attribute  name ="SHA1-Digest"  value ="pKW6BmVf9tT8STL+nCw36hW9WA8=" />
                
section >
                
< section  name ="javax/mail/internet/AddressException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="rdIfPvxpIrwDNszgXHiuOMJCaeE=" />
                
section >
                
< section  name ="javax/mail/internet/NewsAddress.class" >
                    
< attribute  name ="SHA1-Digest"  value ="0RbSRXjy/gj/s7DpiXSWisbixlc=" />
                
section >
                
< section  name ="javax/mail/search/HeaderTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="X9uJjZYjHERz9ZdC0dUTIb5KedY=" />
                
section >
                
< section  name ="javax/mail/MethodNotSupportedException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="FNncwEsBkvqe+2a/oQF1sl7ccPM=" />
                
section >
                
< section  name ="javax/mail/event/FolderAdapter.class" >
                    
< attribute  name ="SHA1-Digest"  value ="QOzL0f5QmfUgthxBvcuvn7OAPC4=" />
                
section >
                
< section  name ="com/sun/mail/smtp/DigestMD5.class" >
                    
< attribute  name ="SHA1-Digest"  value ="4r/Ss01jh3wwscXF9my9+mWRJgg=" />
                
section >
                
< section  name ="com/sun/mail/util/TraceInputStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="36C2Lvq6hgS3APkj6CmrosHD1g0=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPInputStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="FByI8BkvTMYyifD3Vn9ukuC0afM=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/SaslAuthenticator.class" >
                    
< attribute  name ="SHA1-Digest"  value ="U1o7oNJkmyWAxotKR1Z9KWJ35S0=" />
                
section >
                
< section  name ="javax/mail/Quota.class" >
                    
< attribute  name ="SHA1-Digest"  value ="BefUmGUGIxJmfMR5yAq2BCnb/o8=" />
                
section >
                
< section  name ="javax/mail/FetchProfile.class" >
                    
< attribute  name ="SHA1-Digest"  value ="pCxWa9PHRB1Ba5iLNVjHp4xshZU=" />
                
section >
                
< section  name ="javax/mail/StoreClosedException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Z2w7c3FuBJY92Bc8JcwxG+Aa/aI=" />
                
section >
                
< section  name ="javax/mail/Message$RecipientType.class" >
                    
< attribute  name ="SHA1-Digest"  value ="ud6/FfcF4GL+BCrg6uxGToYYPx4=" />
                
section >
                
< section  name ="javax/mail/FolderNotFoundException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="vOgb45rQqgvV6/mw6oh0C1EwNIk=" />
                
section >
                
< section  name ="com/sun/mail/iap/Response.class" >
                    
< attribute  name ="SHA1-Digest"  value ="gBjBHfi0bhs5w23c68FxDRWHElM=" />
                
section >
                
< section  name ="javax/mail/util/SharedFileInputStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Hq+4GYAn/igg71Nyt55oJwFL9DU=" />
                
section >
                
< section  name ="javax/mail/Flags$Flag.class" >
                    
< attribute  name ="SHA1-Digest"  value ="QrLFDDYVpCPYaz8DQ7UdId6KbRo=" />
                
section >
                
< section  name ="javax/mail/search/FlagTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="0SVtJdfKnF4N/WKZl9av9pOfcqs=" />
                
section >
                
< section  name ="com/sun/mail/smtp/SMTPAddressFailedException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="WmMbJ3T6vjQyoCE7v8S6j0YcIFE=" />
                
section >
                
< section  name ="com/sun/mail/handlers/image_gif.class" >
                    
< attribute  name ="SHA1-Digest"  value ="7CSX5dBrzDXgNRkc2nDKUw15OeM=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/BASE64MailboxDecoder.class" >
                    
< attribute  name ="SHA1-Digest"  value ="IiqDB3niZd4eR+2tExKHyxmKctc=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/IMAPResponse.class" >
                    
< attribute  name ="SHA1-Digest"  value ="7vtxkTz9lBhRupmX+VD3uTQuf3g=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/IMAPSaslAuthenticator.class" >
                    
< attribute  name ="SHA1-Digest"  value ="oohscPGAJ8VoiQHN0oxN/eTO0m8=" />
                
section >
                
< section  name ="com/sun/mail/util/SocketFetcher$1.class" >
                    
< attribute  name ="SHA1-Digest"  value ="2kLFfvQxcA8ZaQfBj8uABDhBOAE=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/RFC822DATA.class" >
                    
< attribute  name ="SHA1-Digest"  value ="w/3IrNCVBa9dfYow6KHmRd5y6Hs=" />
                
section >
                
< section  name ="javax/mail/NoSuchProviderException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="aA04S+g3cUIV8ySRbqdjrlryMMs=" />
                
section >
                
< section  name ="javax/mail/internet/MimeBodyPart.class" >
                    
< attribute  name ="SHA1-Digest"  value ="0up2Ns2hZiQTGvE28APExnoeX5k=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/IMAPSaslAuthenticator$1.class" >
                    
< attribute  name ="SHA1-Digest"  value ="9NXMiSXd1Q27l4Av8hPKbl08dIE=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/UIDSet.class" >
                    
< attribute  name ="SHA1-Digest"  value ="B9jTyIvA1QCO2Zo0sok0DLoOT7I=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/Status.class" >
                    
< attribute  name ="SHA1-Digest"  value ="F/A02l8RCs8uecTQ9ec7mscI/Fw=" />
                
section >
                
< section  name ="com/sun/mail/imap/IMAPStore.class" >
                    
< attribute  name ="SHA1-Digest"  value ="nk/MnGmli6BlIW/kqlL0gr8NI14=" />
                
section >
                
< section  name ="javax/mail/event/ConnectionEvent.class" >
                    
< attribute  name ="SHA1-Digest"  value ="k9ZjUM10hLx0uf1fkYCLo57RAAc=" />
                
section >
                
< section  name ="javax/mail/event/MailEvent.class" >
                    
< attribute  name ="SHA1-Digest"  value ="vJQSZ8c8aPuCyOVJqNqfqkRIXr4=" />
                
section >
                
< section  name ="javax/mail/event/StoreListener.class" >
                    
< attribute  name ="SHA1-Digest"  value ="lNLCbgFp1AT0am8Vpa9l2XEt7rs=" />
                
section >
                
< section  name ="com/sun/mail/iap/AString.class" >
                    
< attribute  name ="SHA1-Digest"  value ="dFYlMsn8CgJscFan4kbUKhyHFKE=" />
                
section >
                
< section  name ="javax/mail/util/ByteArrayDataSource.class" >
                    
< attribute  name ="SHA1-Digest"  value ="MU7nCHaJEzScD0+lksSuVJBduPA=" />
                
section >
                
< section  name ="javax/mail/EventQueue.class" >
                    
< attribute  name ="SHA1-Digest"  value ="7VvrIc9DCpdMfIjDA0k+J3OuKRg=" />
                
section >
                
< section  name ="javax/mail/event/FolderEvent.class" >
                    
< attribute  name ="SHA1-Digest"  value ="MyPd9ieGa7nHg4LN8xoa0gysDQs=" />
                
section >
                
< section  name ="com/sun/mail/iap/Atom.class" >
                    
< attribute  name ="SHA1-Digest"  value ="IBC+RMxHyMbbwp5Nt4dlCAXqW4I=" />
                
section >
                
< section  name ="com/sun/mail/util/BASE64EncoderStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="OZg+IN66NPGpwAsavRV+qhNhjE4=" />
                
section >
                
< section  name ="javax/mail/IllegalWriteException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="3cxLMh+FlRjqxELF6z811wxwJ3U=" />
                
section >
                
< section  name ="javax/mail/internet/HeaderTokenizer$Token.class" >
                    
< attribute  name ="SHA1-Digest"  value ="rGHQ7krYXmKYNwalgqYnCmjgQ3w=" />
                
section >
                
< section  name ="javax/mail/internet/MimePartDataSource.class" >
                    
< attribute  name ="SHA1-Digest"  value ="NPv0BQyQ82wjRLVUB9WDs1pKrUs=" />
                
section >
                
< section  name ="javax/mail/event/TransportAdapter.class" >
                    
< attribute  name ="SHA1-Digest"  value ="jIO9yUltn+6tFOKt/G9y3b8BLwU=" />
                
section >
                
< section  name ="javax/mail/URLName.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Ram9tx8SnJ5FI6/UjZyBGnVdpZk=" />
                
section >
                
< section  name ="javax/mail/Service$TerminatorEvent.class" >
                    
< attribute  name ="SHA1-Digest"  value ="AAepxMWJWKjNa2JgGvtOQIAiIz0=" />
                
section >
                
< section  name ="javax/mail/FetchProfile$Item.class" >
                    
< attribute  name ="SHA1-Digest"  value ="fByfdh74743fCQLCsuOZDuiscXA=" />
                
section >
                
< section  name ="com/sun/mail/util/LineInputStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="U4ge7l4tTuc7CoYiGCWfVIzQHb0=" />
                
section >
                
< section  name ="javax/mail/search/DateTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="vJXnPg9/IHbldP69yyq+NWTpLNw=" />
                
section >
                
< section  name ="javax/mail/UIDFolder$FetchProfileItem.class" >
                    
< attribute  name ="SHA1-Digest"  value ="80zDUPv+Zjp3XpWAf9aNpcnB7fs=" />
                
section >
                
< section  name ="javax/mail/Message.class" >
                    
< attribute  name ="SHA1-Digest"  value ="l9F9cuuuGzqCDoWgUQ/hN6zJkLg=" />
                
section >
                
< section  name ="javax/mail/BodyPart.class" >
                    
< attribute  name ="SHA1-Digest"  value ="PWQw0Zc7kqJpm3QSAypfHgvYwAk=" />
                
section >
                
< section  name ="com/sun/mail/handlers/text_html.class" >
                    
< attribute  name ="SHA1-Digest"  value ="uMg+BjWZOMudp4lwn0AeQp2Ll2s=" />
                
section >
                
< section  name ="javax/mail/search/SearchException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="6M5ARIEt9GhTSAgYK0QQ75z+haU=" />
                
section >
                
< section  name ="javax/mail/MessageRemovedException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="+Ym1xj31hREImv7KLvXqmcjJt7c=" />
                
section >
                
< section  name ="javax/mail/internet/InternetAddress.class" >
                    
< attribute  name ="SHA1-Digest"  value ="CbNks/vS6vv1CRXUrW1WZgQlMAo=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/BODYSTRUCTURE.class" >
                    
< attribute  name ="SHA1-Digest"  value ="ElxlifED2LoOupwcLFFRn39Vmxk=" />
                
section >
                
< section  name ="com/sun/mail/iap/Argument.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Ii7uAU+6C0l8CWgJWHAFd3edDb8=" />
                
section >
                
< section  name ="javax/mail/UIDFolder.class" >
                    
< attribute  name ="SHA1-Digest"  value ="pbqgsgRC3d6VTRkkd5tLzVTVKck=" />
                
section >
                
< section  name ="com/sun/mail/pop3/POP3Store.class" >
                    
< attribute  name ="SHA1-Digest"  value ="x0CBJQXbnuOE01ZtsuhUhlHLnY4=" />
                
section >
                
< section  name ="javax/mail/search/AddressStringTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="qWl5/UlirCP1V9jEg+byZ+y72Js=" />
                
section >
                
< section  name ="javax/mail/internet/MimeMultipart.class" >
                    
< attribute  name ="SHA1-Digest"  value ="GsJV8s+34vLn4LXRjcbKT/1nG98=" />
                
section >
                
< section  name ="javax/mail/Provider$Type.class" >
                    
< attribute  name ="SHA1-Digest"  value ="i7sSSn1nWr25wgqoV0bN8V9gaD0=" />
                
section >
                
< section  name ="com/sun/mail/imap/Rights$Right.class" >
                    
< attribute  name ="SHA1-Digest"  value ="u88NZbtOpu7pVUT/kSjUn6inCM0=" />
                
section >
                
< section  name ="com/sun/mail/iap/BadCommandException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="mxeS+BDu9qBf8fxpzeHi8d15YUU=" />
                
section >
                
< section  name ="javax/mail/internet/InternetHeaders$InternetHeader.class" >
                    
< attribute  name ="SHA1-Digest"  value ="2pSm9WJEH5P9CQYVUqV89dOK9v0=" />
                
section >
                
< section  name ="javax/mail/search/StringTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="ApAKtUQXK6A593avdoIcCpB3Kxg=" />
                
section >
                
< section  name ="com/sun/mail/imap/protocol/UID.class" >
                    
< attribute  name ="SHA1-Digest"  value ="5xsl6OTtOIaFXGkTUs4KddePfN4=" />
                
section >
                
< section  name ="javax/mail/search/SubjectTerm.class" >
                    
< attribute  name ="SHA1-Digest"  value ="a6L51yHzK+/AEynE+0I+ONOipnY=" />
                
section >
                
< section  name ="javax/mail/Store.class" >
                    
< attribute  name ="SHA1-Digest"  value ="NpvBEchNHpS0FNy343/GCMubkeQ=" />
                
section >
                
< section  name ="javax/mail/event/ConnectionAdapter.class" >
                    
< attribute  name ="SHA1-Digest"  value ="B4IbCXfTWp23kRwdByVw4nmSaSA=" />
                
section >
                
< section  name ="com/sun/mail/smtp/SMTPAddressSucceededException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="I9gnmrsW0xKK5TWgk0dm0ex24Oo=" />
                
section >
                
< section  name ="com/sun/mail/util/QPEncoderStream.class" >
                    
< attribute  name ="SHA1-Digest"  value ="SBlkP3dxd68VX8Z9pkRnvQXwJXI=" />
                
section >
                
< section  name ="com/sun/mail/iap/CommandFailedException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Y82NdJDvE0cpI+2SqXdjjjLBaCI=" />
                
section >
                
< section  name ="javax/mail/MultipartDataSource.class" >
                    
< attribute  name ="SHA1-Digest"  value ="+ubXpNbAX65XHWH3nKVOs0NTg2Y=" />
                
section >
                
< section  name ="javax/mail/internet/PreencodedMimeBodyPart.class" >
                    
< attribute  name ="SHA1-Digest"  value ="UFlSP6N8SDImnVpW9haodzEKKuA=" />
                
section >
                
< section  name ="javax/mail/Flags.class" >
                    
< attribute  name ="SHA1-Digest"  value ="+QbgJ6EVLeAr4w+IW5bMGrZJuN4=" />
                
section >
                
< section  name ="javax/activation/MimeTypeParseException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="m7mmJXw0gXLY1GS4k6aq0tYkr5M=" />
                
section >
                
< section  name ="javax/activation/CommandInfo.class" >
                    
< attribute  name ="SHA1-Digest"  value ="f8KZC5t/kOXy9g3WtT8D6d0zWAc=" />
                
section >
                
< section  name ="com/sun/activation/viewers/ImageViewer.class" >
                    
< attribute  name ="SHA1-Digest"  value ="KVw7I+eEq1S8azCdy71jIdIekr8=" />
                
section >
                
< section  name ="javax/activation/MimeTypeParameterList.class" >
                    
< attribute  name ="SHA1-Digest"  value ="QnLZ1AlTbnC6x06iuSXHzVVVtaY=" />
                
section >
                
< section  name ="javax/activation/DataContentHandlerFactory.class" >
                    
< attribute  name ="SHA1-Digest"  value ="3aRLzh4IMVBlbc52F5lBdRQy2Vw=" />
                
section >
                
< section  name ="javax/activation/DataSourceDataContentHandler.class" >
                    
< attribute  name ="SHA1-Digest"  value ="PZe91L1ONaRPG7qVgbYpfGavH4Q=" />
                
section >
                
< section  name ="javax/activation/DataSource.class" >
                    
< attribute  name ="SHA1-Digest"  value ="g86kGPXVFjqZi+DpfbiLAtS8fo8=" />
                
section >
                
< section  name ="com/sun/activation/registries/MimeTypeFile.class" >
                    
< attribute  name ="SHA1-Digest"  value ="oLr1fHVCH+Nfmi1QYOHD7g0BnJM=" />
                
section >
                
< section  name ="com/sun/activation/viewers/TextViewer.class" >
                    
< attribute  name ="SHA1-Digest"  value ="wIWBUn1WMYQsTXWhb2LqH8a8Jb0=" />
                
section >
                
< section  name ="com/sun/activation/viewers/TextEditor.class" >
                    
< attribute  name ="SHA1-Digest"  value ="IhFQa8fovU17cM4MIuPYizaoOaw=" />
                
section >
                
< section  name ="com/sun/activation/registries/LineTokenizer.class" >
                    
< attribute  name ="SHA1-Digest"  value ="vO89GlctMy311MKQuIXM5hKV4nQ=" />
                
section >
                
< section  name ="javax/activation/DataContentHandler.class" >
                    
< attribute  name ="SHA1-Digest"  value ="0qTvM4m+cRfMN+3GiqLfn+RLQuU=" />
                
section >
                
< section  name ="javax/activation/MimeType.class" >
                    
< attribute  name ="SHA1-Digest"  value ="dWNqSXFXHLIM5UQQhtVyaoRicaQ=" />
                
section >
                
< section  name ="javax/activation/FileDataSource.class" >
                    
< attribute  name ="SHA1-Digest"  value ="qcljJOyNKdelFdqMNhDD27evuk8=" />
                
section >
                
< section  name ="javax/activation/SecuritySupport.class" >
                    
< attribute  name ="SHA1-Digest"  value ="S46zop0lhrrDKGZwNH91BETwaFg=" />
                
section >
                
< section  name ="javax/activation/MailcapCommandMap.class" >
                    
< attribute  name ="SHA1-Digest"  value ="IY4POuZ7WA8WTgwdkpihrweS3wg=" />
                
section >
                
< section  name ="javax/activation/DataHandler$1.class" >
                    
< attribute  name ="SHA1-Digest"  value ="3PE4Qw/EanCg+NXytqiX5gByGL0=" />
                
section >
                
< section  name ="javax/activation/DataHandler.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Q9J99BwfRcIYvVoG7iLaP4kK/5w=" />
                
section >
                
< section  name ="javax/activation/SecuritySupport$1.class" >
                    
< attribute  name ="SHA1-Digest"  value ="cAJSVLIeAQDIMsjUDf8JDoODIVI=" />
                
section >
                
< section  name ="com/sun/activation/registries/MimeTypeEntry.class" >
                    
< attribute  name ="SHA1-Digest"  value ="iQm+s8GK/lR3K9+W6mSS93S9pTM=" />
                
section >
                
< section  name ="javax/activation/SecuritySupport$3.class" >
                    
< attribute  name ="SHA1-Digest"  value ="mk8IMigKjXYeBD+Rqkxo5t8z+lg=" />
                
section >
                
< section  name ="javax/activation/SecuritySupport$5.class" >
                    
< attribute  name ="SHA1-Digest"  value ="SJpj/wH2OL8Yvg/rkIdV3rDntwg=" />
                
section >
                
< section  name ="javax/activation/SecuritySupport$2.class" >
                    
< attribute  name ="SHA1-Digest"  value ="F2xmB1e2hNKSYzYlkrpG27HKpbY=" />
                
section >
                
< section  name ="javax/activation/SecuritySupport$4.class" >
                    
< attribute  name ="SHA1-Digest"  value ="y6FVr0drZlbptJrcS/98PvwxUWw=" />
                
section >
                
< section  name ="javax/activation/MimetypesFileTypeMap.class" >
                    
< attribute  name ="SHA1-Digest"  value ="g6phKDnBV72LQsfNtGAtIXKefH0=" />
                
section >
                
< section  name ="javax/activation/FileTypeMap.class" >
                    
< attribute  name ="SHA1-Digest"  value ="/6uTi6QblT17/xDvnoiI4lqeRk0=" />
                
section >
                
< section  name ="javax/activation/CommandObject.class" >
                    
< attribute  name ="SHA1-Digest"  value ="ubyjFuSm1evoIOlmhsBcKVCLv/Q=" />
                
section >
                
< section  name ="javax/activation/DataHandlerDataSource.class" >
                    
< attribute  name ="SHA1-Digest"  value ="zY8hHG8T6Fb6gHMQ3zoBZZSfegI=" />
                
section >
                
< section  name ="com/sun/activation/registries/MailcapTokenizer.class" >
                    
< attribute  name ="SHA1-Digest"  value ="KUCh8CV+5Ia4Jp5uFkzVzKsNvOs=" />
                
section >
                
< section  name ="javax/activation/ActivationDataFlavor.class" >
                    
< attribute  name ="SHA1-Digest"  value ="aqjd93WIpK0krYHmWKcBDa+NM/I=" />
                
section >
                
< section  name ="com/sun/activation/registries/MailcapFile.class" >
                    
< attribute  name ="SHA1-Digest"  value ="XuurUYdTVsJfeqGWBHHwqP7/eJc=" />
                
section >
                
< section  name ="com/sun/activation/registries/MailcapParseException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="21c8agHGFiu4q9c3h+bVrsLESvE=" />
                
section >
                
< section  name ="javax/activation/ObjectDataContentHandler.class" >
                    
< attribute  name ="SHA1-Digest"  value ="2QGo0CJI4KcAgECMicBaATdEAjI=" />
                
section >
                
< section  name ="javax/activation/URLDataSource.class" >
                    
< attribute  name ="SHA1-Digest"  value ="Jvr/7HSgqteI2+qrpCcP9GKdvxI=" />
                
section >
                
< section  name ="javax/activation/UnsupportedDataTypeException.class" >
                    
< attribute  name ="SHA1-Digest"  value ="XqU4tNQVzIOihXn7JZeLHgKlgWo=" />
                
section >
                
< section  name ="javax/activation/CommandMap.class" >
                    
< attribute  name ="SHA1-Digest"  value ="7rGDE9NEoTBwTIk13EPyXzvCXVk=" />
                
section >
                
< section  name ="com/sun/activation/viewers/ImageViewerCanvas.class" >
                    
< attribute  name ="SHA1-Digest"  value ="BVI/zbrr0jFAkuo0didLXMWy/m4=" />
                
section >
                
< section  name ="com/sun/activation/registries/LogSupport.class" >
                    
< attribute  name ="SHA1-Digest"  value ="R9iOxR0B5szkHmX7S9ptGdDQJUs=" />
                
section >


            
manifest >
            
< zipfileset  src ="${libDir}/classes12.jar"   />
            
< zipfileset  src ="${libDir}/commons-collections-3.1.jar"   />
            
< zipfileset  src ="${libDir}/commons-lang-2.1.jar"   />
            
< zipfileset  src ="${libDir}/log4j-1.2.12.jar"   />
            
< zipfileset  src ="${libDir}/jdom.jar"   />
            
< zipfileset  src ="${libDir}/comm.jar"   />
            
< zipfileset  src ="${libDir}/derby.jar"   />
            
< zipfileset  src ="${libDir}/derbytools.jar"   />
            
< zipfileset  src ="${libDir}/jamon.jar"   />
            
< zipfileset  src ="${libDir}/jakarta-regexp-1.4.jar"   />
            
< zipfileset  src ="${libDir}/mysql-connector-java-5.0.4-bin.jar"   />
            
< zipfileset  src ="${libDir}/mail.jar"   />
            
< zipfileset  src ="${libDir}/activation.jar"   />
        
jar >

        
< jar  destfile ="${distDir}/dp-src-${DSTAMP}.jar"  basedir ="${src_temp}"   />
    
target >

你也可以直接把mail.jar activation.jar中的MANIFEST。MF的安全认证信息全部COPY到一个新的MANIFEST。MF,并指明主类等其他信息,在Build文件当中指明该文件为生成JAR的MANIFEST即可:

< jar  destfile ="${distDir}dp.jar"  basedir ="${buildDir}"  manifest ="${confDIr}/manifest.mf" />

但在实际测试当中,总是提示我MANIFEST文件不正确,不知道为什么,有兴趣的话可以自己试一下。

参考:

1.log4j,http://logging.apache.org/log4j/docs/

2.javamail,http://java.sun.com/products/javamail/index.jsp

你可能感兴趣的:(JAVA)