Package org.apache.james.mime4j.util
Class MimeUtil
- java.lang.Object
-
- org.apache.james.mime4j.util.MimeUtil
-
public final class MimeUtil extends java.lang.Object
A utility class, which provides some MIME related application logic.
-
-
Field Summary
Fields Modifier and Type Field Description private static int
counter
static java.lang.String
ENC_7BIT
The7bit
encoding.static java.lang.String
ENC_8BIT
The8bit
encoding.static java.lang.String
ENC_BASE64
Thebase64
encoding.static java.lang.String
ENC_BINARY
Thebinary
encoding.static java.lang.String
ENC_QUOTED_PRINTABLE
Thequoted-printable
encoding.private static int
INITIAL_YEAR
private static java.util.Random
random
static java.time.format.DateTimeFormatter
RFC822_DATE_FORMAT
-
Constructor Summary
Constructors Modifier Constructor Description private
MimeUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.String
createUniqueBoundary()
Creates a new unique message boundary string that can be used as boundary parameter for the Content-Type header field of a message.static java.lang.String
createUniqueMessageId(java.lang.String hostName)
Creates a new unique message identifier that can be used in message header field such as Message-ID or In-Reply-To.private static java.util.Map<java.lang.Long,java.lang.String>
dayOfWeek()
static java.lang.String
fold(java.lang.String s, int usedCharacters)
Splits the specified string into a multiple-line representation with lines no longer than 76 characters (because the line might contain encoded words; see RFC 2047 section 2).static java.lang.String
formatDate(java.util.Date date, java.util.TimeZone zone)
Formats the specified date into a RFC 822 date-time string.private static int
indexOfWsp(java.lang.String s, int fromIndex)
static boolean
isBase64Encoding(java.lang.String pTransferEncoding)
Returns, whether the given transfer-encoding is "base64".static boolean
isMessage(java.lang.String pMimeType)
Returns true, if the given MIME type is that of a message.static boolean
isMultipart(java.lang.String pMimeType)
Return true, if the given MIME type indicates a multipart entity.static boolean
isQuotedPrintableEncoded(java.lang.String pTransferEncoding)
Returns, whether the given transfer-encoding is "quoted-printable".static boolean
isSameMimeType(java.lang.String pType1, java.lang.String pType2)
Returns, whether the given two MIME types are identical.private static java.util.Map<java.lang.Long,java.lang.String>
monthOfYear()
private static int
nextCounterValue()
static java.lang.String
unfold(java.lang.String s)
Unfold a multiple-line representation into a single line.private static java.lang.String
unfold0(java.lang.String s, int crlfIdx)
static java.lang.String
unscrambleHeaderValue(java.lang.String headerValue)
Unfold and decode header valueprivate static java.time.ZoneId
zone(java.util.TimeZone zone)
-
-
-
Field Detail
-
ENC_QUOTED_PRINTABLE
public static final java.lang.String ENC_QUOTED_PRINTABLE
Thequoted-printable
encoding.- See Also:
- Constant Field Values
-
ENC_BINARY
public static final java.lang.String ENC_BINARY
Thebinary
encoding.- See Also:
- Constant Field Values
-
ENC_BASE64
public static final java.lang.String ENC_BASE64
Thebase64
encoding.- See Also:
- Constant Field Values
-
ENC_8BIT
public static final java.lang.String ENC_8BIT
The8bit
encoding.- See Also:
- Constant Field Values
-
ENC_7BIT
public static final java.lang.String ENC_7BIT
The7bit
encoding.- See Also:
- Constant Field Values
-
random
private static final java.util.Random random
-
counter
private static int counter
-
INITIAL_YEAR
private static final int INITIAL_YEAR
- See Also:
- Constant Field Values
-
RFC822_DATE_FORMAT
public static final java.time.format.DateTimeFormatter RFC822_DATE_FORMAT
-
-
Method Detail
-
isSameMimeType
public static boolean isSameMimeType(java.lang.String pType1, java.lang.String pType2)
Returns, whether the given two MIME types are identical.
-
isMessage
public static boolean isMessage(java.lang.String pMimeType)
Returns true, if the given MIME type is that of a message.
-
isMultipart
public static boolean isMultipart(java.lang.String pMimeType)
Return true, if the given MIME type indicates a multipart entity.
-
isBase64Encoding
public static boolean isBase64Encoding(java.lang.String pTransferEncoding)
Returns, whether the given transfer-encoding is "base64".
-
isQuotedPrintableEncoded
public static boolean isQuotedPrintableEncoded(java.lang.String pTransferEncoding)
Returns, whether the given transfer-encoding is "quoted-printable".
-
createUniqueBoundary
public static java.lang.String createUniqueBoundary()
Creates a new unique message boundary string that can be used as boundary parameter for the Content-Type header field of a message.- Returns:
- a new unique message boundary string.
-
createUniqueMessageId
public static java.lang.String createUniqueMessageId(java.lang.String hostName)
Creates a new unique message identifier that can be used in message header field such as Message-ID or In-Reply-To. If the given host name is notnull
it will be used as suffix for the message ID (following an at sign). The resulting string is enclosed in angle brackets (< and >);- Parameters:
hostName
- host name to be included in the message ID ornull
if no host name should be included.- Returns:
- a new unique message identifier.
-
formatDate
public static java.lang.String formatDate(java.util.Date date, java.util.TimeZone zone)
Formats the specified date into a RFC 822 date-time string.- Parameters:
date
- date to be formatted into a string.zone
- the time zone to use ornull
to use the default time zone.- Returns:
- the formatted time string.
-
zone
private static java.time.ZoneId zone(java.util.TimeZone zone)
-
fold
public static java.lang.String fold(java.lang.String s, int usedCharacters)
Splits the specified string into a multiple-line representation with lines no longer than 76 characters (because the line might contain encoded words; see RFC 2047 section 2). If the string contains non-whitespace sequences longer than 76 characters a line break is inserted at the whitespace character following the sequence resulting in a line longer than 76 characters.- Parameters:
s
- string to split.usedCharacters
- number of characters already used up. Usually the number of characters for header field name plus colon and one space.- Returns:
- a multiple-line representation of the given string.
-
unfold
public static java.lang.String unfold(java.lang.String s)
Unfold a multiple-line representation into a single line.- Parameters:
s
- string to unfold.- Returns:
- unfolded string.
-
unscrambleHeaderValue
public static java.lang.String unscrambleHeaderValue(java.lang.String headerValue)
Unfold and decode header value
-
unfold0
private static java.lang.String unfold0(java.lang.String s, int crlfIdx)
-
indexOfWsp
private static int indexOfWsp(java.lang.String s, int fromIndex)
-
nextCounterValue
private static int nextCounterValue()
-
monthOfYear
private static java.util.Map<java.lang.Long,java.lang.String> monthOfYear()
-
dayOfWeek
private static java.util.Map<java.lang.Long,java.lang.String> dayOfWeek()
-
-