亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mailutil.java

?? java servlet著名論壇源代碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*
 * $Header: /cvsroot/mvnforum/myvietnam/src/net/myvietnam/mvncore/util/MailUtil.java,v 1.26 2004/06/24 12:57:31 minhnn Exp $
 * $Author: minhnn $
 * $Revision: 1.26 $
 * $Date: 2004/06/24 12:57:31 $
 *
 * ====================================================================
 *
 * Copyright (C) 2002-2004 by MyVietnam.net
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or any later version.
 *
 * All copyright notices regarding MyVietnam and MyVietnam CoreLib
 * MUST remain intact in the scripts and source code.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 * Correspondence and Marketing Questions can be sent to:
 * info@MyVietnam.net
 *
 * @author: Minh Nguyen  minhnn@MyVietnam.net
 * @author: Mai  Nguyen  mai.nh@MyVietnam.net
 */
package net.myvietnam.mvncore.util;

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import java.io.*;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import net.myvietnam.mvncore.exception.*;
import net.myvietnam.mvncore.filter.DisableHtmlTagFilter;

public final class MailUtil {

    public static final int MAX_MESSAGES_PER_TRANSPORT = 100;

    private static Log log = LogFactory.getLog(MailUtil.class);

    private MailUtil() {// prevent instantiation
    }

    private static MailOptions mailOption = new MailOptions();

    /**
     * Get the user name part of an email. Ex: input: test@yahoo.com => output: test
     * @param email String the email
     * @return String the user name part of an email
     */
    public static String getEmailUsername(String email) {
        if (email == null) return "";
        int atIndex = email.indexOf('@');
        if (atIndex == -1) {
            return "";
        } else {
            return email.substring(0, atIndex);
        }
    }

    /**
     * Get the domain part of an email. Ex: input: test@yahoo.com => output: yahoo.com
     * @param email String the email
     * @return String the user name part of an email
     */
    public static String getEmailDomain(String email) {
        if (email == null) return "";
        int atIndex = email.indexOf('@');
        if (atIndex == -1) {
            return "";
        } else {
            return email.substring(atIndex + 1);
        }
    }

    /**
     * Check if an email is good and safe or not.
     * This method should be use for all email input from user
     * @param input String
     * @throws BadInputException if email is not good
     */
    public static void checkGoodEmail(String input) throws BadInputException {
        if (input == null) throw new BadInputException("Sorry, null string is not a good email.");
        int atIndex = input.indexOf('@');
        int dotIndex = input.lastIndexOf('.');
        if ((atIndex == -1) || (dotIndex == -1) || (atIndex >= dotIndex))
            throw new BadInputException("Error: '" + DisableHtmlTagFilter.filter(input) + "' is not a valid email value. Please try again.");
        // now check for content of the string
        byte[] s = input.getBytes();
        int length = s.length;
        byte b = 0;

        for (int i = 0; i < length; i++) {
            b = s[i];
            if ((b >= 'a') && (b <= 'z')) {
                // lower char
            } else if ((b >= 'A') && (b <= 'Z')) {
                // upper char
            } else if ((b >= '0') && (b <= '9')/* && (i != 0)*/) {
                // as of 31 Jan 2004, i relax the email checking
                // so that the email can start with an numeric char
                // hopefully it does not introduce a security bug
                // because this value will be inserted into sql script

                // numeric char
            } else if ( ( (b=='_') || (b=='-') || (b=='.') || (b=='@') ) && (i != 0) ) {
                // _ char
            } else {
                // not good char, throw an BadInputException
                throw new BadInputException(input + " is not a valid email. Reason: character '" + (char)(b) + "' is not accepted in an email.");
            }
        }// for

        // last check
        try {
            new javax.mail.internet.InternetAddress(input);
        } catch (Exception ex) {
            log.error("Error when running checkGoodEmail", ex);
            throw new BadInputException("Assertion: dont want to occur in Util.checkGoodEmail");
        }
    }

    /**
     * NOTE: param to, cc, bcc cannot be all empty. At least one must have a valid value
     * @param from : must be a valid email. However, if this param is null,
     *              then the default mail in config file will be use
     * @param to : can be null
     * @param cc : can be null
     * @param bcc: can be null
     * @param subject
     * @param message
     * @throws MessagingException
     * @throws BadInputException
     */
    public static void sendMail(String from, String to, String cc, String bcc, String subject, String message)
        throws MessagingException, BadInputException, UnsupportedEncodingException {

        MailMessageStruct mailItem = new MailMessageStruct();
        mailItem.setFrom(from);
        mailItem.setTo(to);
        mailItem.setCc(cc);
        mailItem.setBcc(bcc);
        mailItem.setSubject(subject);
        mailItem.setMessage(message);

        sendMail(mailItem);
    }

    /**
     * Old method, to be removed later
     */
    public static void sendMailOld(String from, String to, String cc, String bcc, String subject, String message)
        throws MessagingException, BadInputException, UnsupportedEncodingException {

        if (from == null) from = mailOption.defaultMailFrom;

        // this will also check for email error
        checkGoodEmail(from);
        InternetAddress fromAddress = new InternetAddress(from);
        InternetAddress[] toAddress = getInternetAddressEmails(to);
        InternetAddress[] ccAddress = getInternetAddressEmails(cc);
        InternetAddress[] bccAddress= getInternetAddressEmails(bcc);
        if ((toAddress == null) && (ccAddress == null) && (bccAddress == null)) {
            throw new BadInputException("Cannot send mail since all To, Cc, Bcc addresses are empty.");
        }

        Properties props = new Properties();
        props.put("mail.smtp.host", mailOption.mailServer);
        props.put("mail.smtp.port", String.valueOf(mailOption.port));
        if ( (mailOption.username != null) && (mailOption.username.length() > 0) ) {
            props.put("mail.smtp.auth", "true");
            //props.put("mail.user", mailOption.mailServer);
            //props.put("mail.password", mailOption.mailServer);
        }
        //props.put("mail.debug", "true");

        Transport transport = null;
        try {
            Session session = Session.getDefaultInstance(props, null);
            transport = session.getTransport("smtp");
            if ( (mailOption.username != null) && (mailOption.username.length() > 0) ) {
                transport.connect(mailOption.mailServer, mailOption.username, mailOption.password);
            } else {
                transport.connect();
            }
            // create a message
            Message msg = new MimeMessage(session);
            msg.setSentDate(new Date());
            msg.setFrom(fromAddress);

            if (toAddress != null) msg.setRecipients(Message.RecipientType.TO, toAddress);
            if (ccAddress != null) msg.setRecipients(Message.RecipientType.CC, ccAddress);
            if (bccAddress!= null) msg.setRecipients(Message.RecipientType.BCC, bccAddress);
            //This code is use to display unicode in Subject
            msg.setSubject(MimeUtility.encodeText(subject, "iso-8859-1", "Q"));
            msg.setText(message);

            /*
            //Below code is use for unicode
            MimeBodyPart messageBodyPart = new MimeBodyPart();
            messageBodyPart.setText(message);
            messageBodyPart.setHeader("Content-Type", "text/html;charset=iso-8859-1");
            messageBodyPart.setHeader("Content-Transfer-Encoding", "quoted-printable");
            MimeMultipart multipart = new MimeMultipart("alternative");
            multipart.addBodyPart(messageBodyPart);
            msg.setContent(multipart);
            */
            msg.saveChanges();
            transport.sendMessage(msg, msg.getAllRecipients());
        } catch (MessagingException mex) {
            log.error("MessagingException has occured.", mex);
            log.debug("MessagingException has occured. Detail info:");
            log.debug("from = " + from);
            log.debug("to = " + to);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区爱爱| 欧美精品免费视频| 久久综合色一综合色88| 高清久久久久久| 亚洲一区二区在线视频| 欧美一区二区视频观看视频| 国产美女一区二区| 国产精品久线在线观看| 91麻豆精品91久久久久久清纯| 国产一区不卡精品| 视频一区欧美日韩| 亚洲第一成人在线| 日韩视频一区在线观看| 久久电影网站中文字幕| 最近中文字幕一区二区三区| 欧美日韩三级一区| 国产成人一区在线| 亚洲二区在线观看| 欧美激情一区二区三区全黄| 欧美欧美欧美欧美首页| 欧日韩精品视频| 91成人网在线| 日韩色在线观看| 欧美伦理视频网站| 不卡电影一区二区三区| 国产在线精品一区二区三区不卡| 色综合一个色综合| 91女神在线视频| 男人的天堂亚洲一区| 亚洲欧美在线高清| 亚洲夂夂婷婷色拍ww47| 一区二区三区不卡在线观看| 亚洲国产日韩综合久久精品| 亚洲色图在线看| 日本一区二区免费在线| 亚洲欧美日韩国产另类专区| 亚洲18色成人| 美女免费视频一区二区| 91老师片黄在线观看| 色琪琪一区二区三区亚洲区| 日韩午夜精品视频| 国产精品第一页第二页第三页| 麻豆免费看一区二区三区| 一本色道久久综合亚洲91 | 91麻豆精品91久久久久同性| 欧美日韩久久一区| 午夜天堂影视香蕉久久| 成人国产精品免费网站| 色综合久久中文字幕| 国产区在线观看成人精品 | 一本色道亚洲精品aⅴ| 日韩欧美美女一区二区三区| 亚洲色图一区二区三区| 亚洲国产日韩a在线播放性色| 日韩成人午夜电影| 99久久99久久精品国产片果冻| 在线亚洲免费视频| 欧美激情一区二区三区全黄| 国产高清久久久久| 日韩欧美一区二区三区在线| 亚洲日本护士毛茸茸| 久久99国产精品免费| 日韩午夜激情av| 麻豆视频一区二区| 久久久www成人免费无遮挡大片| 美女国产一区二区| 久久奇米777| 国产精品主播直播| 国产欧美一区二区在线| 国产成人8x视频一区二区| 国产欧美日韩在线看| 91丨九色丨国产丨porny| 一区二区三区蜜桃网| 欧美日韩电影一区| 日本三级亚洲精品| 日韩美女在线视频| 国产一区二区三区视频在线播放| 久久久久久免费网| 日本高清视频一区二区| 亚洲色图一区二区三区| 色综合久久综合网欧美综合网| 日韩毛片视频在线看| 色又黄又爽网站www久久| 国产精品久久久久影院色老大| 91在线你懂得| 亚洲高清久久久| 亚洲欧洲日韩女同| 欧美性猛交一区二区三区精品| 亚洲女人的天堂| 精品成人免费观看| 韩国av一区二区| 国产精品你懂的在线| 欧美电视剧在线观看完整版| 欧美日韩国产系列| 免费的成人av| 一区二区三区影院| 久久精品视频免费| 精品国产一区二区三区久久影院| 欧美午夜片在线看| 欧美精品123区| 欧美日韩国产小视频在线观看| 成人性生交大片免费看中文 | 国内精品视频一区二区三区八戒| 欧美成人官网二区| 欧美优质美女网站| 色8久久人人97超碰香蕉987| 麻豆一区二区三| 亚洲成人在线观看视频| 国产精品乱子久久久久| 久久久久久久久久久电影| 国产欧美一区二区精品秋霞影院| 中文字幕免费一区| 久久久久久久久久看片| 久久久精品国产免大香伊| 亚洲欧洲成人精品av97| 中文字幕视频一区二区三区久| 亚洲国产一区视频| 老汉av免费一区二区三区| 美女诱惑一区二区| 国产精品99精品久久免费| av综合在线播放| 成人做爰69片免费看网站| av在线综合网| 欧美综合亚洲图片综合区| 欧美精品在欧美一区二区少妇| 欧美性三三影院| 国产精品乱码久久久久久| 国产综合久久久久久鬼色| 91丨九色丨尤物| 久久精品这里都是精品| 国产视频一区在线播放| 日本不卡一二三| 成人av在线网| 欧美一区二区三区在线观看视频| 亚洲色图在线视频| 蜜桃视频在线一区| 91精品国产综合久久久久久漫画| 国产精品免费人成网站| 免费欧美在线视频| 色88888久久久久久影院野外| 一色屋精品亚洲香蕉网站| 狠狠色狠狠色合久久伊人| 精品日本一线二线三线不卡| **欧美大码日韩| 国产精品资源在线观看| 国产精品国产三级国产| 成人午夜短视频| 亚洲一区二区五区| 在线免费亚洲电影| 日韩欧美一区在线观看| 亚洲精品国产第一综合99久久| 91免费版在线看| 亚洲色图在线看| 日韩一区二区精品葵司在线| 国产精品99久| 久久蜜桃av一区精品变态类天堂 | 亚洲国产成人av| 麻豆一区二区99久久久久| 欧美日韩国产综合久久 | 欧美丰满嫩嫩电影| 亚洲伊人色欲综合网| 欧美日韩亚洲不卡| a美女胸又www黄视频久久| 2021中文字幕一区亚洲| 91久久一区二区| 国产福利一区在线观看| 亚洲专区一二三| 国产精品久久久久国产精品日日| 成人污视频在线观看| 蜜臀av一区二区| 亚洲三级在线观看| 欧美性受xxxx黑人xyx性爽| 国产乱子伦视频一区二区三区 | 首页国产欧美久久| 久久精品视频一区| 51午夜精品国产| 蜜桃免费网站一区二区三区| 国产精品久久久久久久第一福利 | 成人精品小蝌蚪| 男女男精品视频| 国产精品激情偷乱一区二区∴| www一区二区| 欧美激情综合五月色丁香小说| 欧美日韩激情一区二区| 91色综合久久久久婷婷| 伊人一区二区三区| 国产精品免费观看视频| 欧美一区二区三区精品| 日韩一区二区三区在线视频| 99re亚洲国产精品| 久久国产免费看| 久久综合综合久久综合| 日韩高清在线电影| 美女网站在线免费欧美精品| 亚洲成人免费看| 国产激情一区二区三区| 懂色av中文字幕一区二区三区| 91捆绑美女网站| 欧美丝袜丝交足nylons图片| 成人三级在线视频|