All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xiaoleilu.hutool.extra.mail.InternalMailUtil Maven / Gradle / Ivy

package com.xiaoleilu.hutool.extra.mail;

import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;

import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeUtility;

import com.xiaoleilu.hutool.util.ArrayUtil;

/**
 * 邮件内部工具类
 * @author looly
 * @since 3.2.3
 */
public class InternalMailUtil {
	
	/**
	 * 解析第一个地址
	 * 
	 * @param address 地址字符串
	 * @param charset 编码
	 * @return 地址列表
	 */
	public static InternetAddress parseFirstAddress(String address, Charset charset) {
		final InternetAddress[] internetAddresses = parseAddress(address, charset);
		if (ArrayUtil.isEmpty(internetAddresses)) {
			try {
				return new InternetAddress(address);
			} catch (AddressException e) {
				throw new MailException(e);
			}
		}
		return internetAddresses[0];
	}

	/**
	 * 将一个地址字符串解析为多个地址
* 地址间使用" "、","、";"分隔 * * @param address 地址字符串 * @param charset 编码 * @return 地址列表 */ public static InternetAddress[] parseAddress(String address, Charset charset) { InternetAddress[] addresses; try { addresses = InternetAddress.parse(address); } catch (AddressException e) { throw new MailException(e); } if (ArrayUtil.isNotEmpty(addresses)) { for (InternetAddress internetAddress : addresses) { try { internetAddress.setPersonal(internetAddress.getPersonal(), charset.name()); } catch (UnsupportedEncodingException e) { throw new MailException(e); } } } return addresses; } /** * 编码中文字符
* 编码失败返回原字符串 * * @param text 被编码的文本 * @param charset 编码 * @return 编码后的结果 */ public static String encodeText(String text, Charset charset) { try { return MimeUtility.encodeText(text, charset.name(), null); } catch (UnsupportedEncodingException e) { // ignore } return text; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy