⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mailaddress.java

📁 CRM源码This file describes some issues that should be implemented in future and how it should be imple
💻 JAVA
字号:
/* * Copyright 2006-2007 Queplix Corp. * * Licensed under the Queplix Public License, Version 1.1.1 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.queplix.com/solutions/commercial-open-source/queplix-public-license/ * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */package com.queplix.core.modules.mail;import com.queplix.core.integrator.security.User;import com.queplix.core.integrator.security.WorkGroup;import com.queplix.core.utils.StringHelper;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import java.util.StringTokenizer;/** * Mail addresses value object. * @author [DAG] Dmitry Gaponenko * @author [ALB] Baranov Andrey * @author [ONZ] Oleg N. Zhovtanyuk */public class MailAddress    implements java.io.Serializable {    // --------------------------------------------------------------- Constants    /** Mail address delimeter */    public static final String DELIMETETR = ",;";    // --------------------------------------------------------------- Fields    /** Sender full name. */    private String fullName = null;    /** E-mail address. */    private String email = null;    // --------------------------------------------------------------- Constructors    public MailAddress( String fullName, String email ) {        setFullName( fullName );        setEmail( email );    }    public MailAddress( User user ) {        this( user.getFullName(), user.getEmail() );    }    public MailAddress( WorkGroup group ) {        this( group.getGroupName(), group.getEmail() );    }    public MailAddress( InternetAddress ia ) {        this( ia.getPersonal(), ia.getAddress() );    }    public MailAddress( String email ) {        if( email != null ) {            int leftAngle = email.indexOf( "<" );            int rightAngle = email.indexOf( ">", leftAngle + 1 );            if( leftAngle >= 0 && rightAngle > leftAngle ) {                if( leftAngle - 1 > 0 ) {                    setFullName( email.substring( 0, leftAngle - 1 ).trim() );                }                setEmail( email.substring( leftAngle + 1, rightAngle ).trim() );                return;            }        }        setEmail( email );    }    // --------------------------------------------------------------- Getters/Setters    public String getFullName() {        return fullName;    }    public String getEmail() {        return email;    }    private void setFullName( String fullName ) {        this.fullName = fullName;    }    private void setEmail( String email ) {        this.email = email;    }    // --------------------------------------------------------------- Static methods    /**     * Parse address string. Try to find emails in gicven string separated     * by <code>DELIMETER</code>.     * @param s given string     * @return array of <code>MailAddress</code> objects or NULL.     */    public static MailAddress[] parse( String s ) {        if( s == null ) {            throw new NullPointerException( "Address is NULL" );        }        List addrList = new ArrayList();        StringTokenizer st = new StringTokenizer( s, DELIMETETR );        while( st.hasMoreTokens() ) {            String email = st.nextToken();            MailAddress addr = new MailAddress( email );            addrList.add( addr );        }        return( addrList.size() == 0 ) ? null :            ( MailAddress[] ) addrList.toArray( new MailAddress[0] );    }    /**     * Converts the value objects array to string in accordance with RFC 822.     *     * @param addresses value object array     * @return an RFC 822 string     */    public static String toRfcString( MailAddress[] addresses ) {        // Checking for null.        if( addresses == null ) {            return StringHelper.EMPTY_VALUE;        }        // Joining...        StringBuffer sb = new StringBuffer();        int num = addresses.length;        for( int i = 0; i < num; i++ ) {            if( i > 0 ) {                sb.append( "; " );            }            sb.append( addresses[i].toRfcString() );        }        // Ok.        return sb.toString();    }    // --------------------------------------------------------------- Helper methods    /**     * Converts VO to {@link InternetAddress InternetAddress} object.     *     * @return InternetAddress object     *     * @throws UnsupportedEncodingException     * @throws AddressException     */    public InternetAddress toInternetAddress()        throws UnsupportedEncodingException, AddressException {        if( !isValid() ) {            throw new AddressException( "Bad e-mail '" + email + "'" );        }        if( fullName != null ) {            return new InternetAddress( email, fullName );        } else {            return new InternetAddress( email );        }    }    /**     * Converts value object to string in accordance with RFC 822.     * @return an RFC 822 string     */    public String toRfcString() {        if( !StringHelper.isEmpty( fullName ) ) {            return fullName + " <" + email + ">";        } else {            return email;        }    }    /**     * Check if Mail Address valid or not     * @return true if valid     */    public boolean isValid() {        return( !StringHelper.isEmpty( email ) );    }    /**     * Converts VO to string.     * @return a string like <pre>Name [user@domain]</pre>     */    public String toString() {        return toRfcString();    }} // end of class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -