前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0
SFXMailUtility
メールメッセージを処理するためのユーティリティクラスです。
#include <SFXMailUtility.h.hpp>
class SFXMailUtility;
SFMTYPEDEFCLASS(SFXMailUtility)

解説

RFC2822 ( Internet Message Format ) に準拠したメッセージのヘッダーを解析するためのパーサー関数と、Base64 や QuotedPrintable、MD5 などの処理をするための関数があります。

メールメッセージ全体の解析に関しては SFXMailMessage クラスを、RFC2047 ( MIME Part Three : Message Header Extensions for Non-ASCII Text ) で定義される MIME エンコードの解析は SFXMailField クラスを使います。

参照

SFXMailMessage | SFXMailField

メンバ

パブリック関数
static
SFCError
DecodeBase64( ACharConstPtr in , UInt32 size , SFXBufferPtr out )
DecodeBase64( SFXAnsiStringConstRef in , SFXAnsiStringPtr out )
DecodeBase64( SFXBufferConstRef in , SFXBufferPtr out )
Base64 エンコードされたデータをデコードします。
static
SFCError
DecodeQuotedPrintable( ACharConstPtr in , UInt32 size , SFXBufferPtr out , Bool text = true )
DecodeQuotedPrintable( SFXAnsiStringConstRef in , SFXAnsiStringPtr out , Bool text = true )
DecodeQuotedPrintable( SFXBufferConstRef in , SFXBufferPtr out , Bool text = true )
Quoted-Printable エンコードされたデータをデコードします。
static
SFCError
EncodeBase64( ACharConstPtr in , UInt32 size , SFXBufferPtr out , UInt32 chars = 64 , SFXAnsiStringConstRef delimiter = "\r\n" )
EncodeBase64( SFXAnsiStringConstRef in , SFXAnsiStringPtr out , UInt32 chars = 64 , SFXAnsiStringConstRef delimiter = "\r\n" )
EncodeBase64( SFXBufferConstRef in , SFXBufferPtr out , UInt32 chars = 64 , SFXAnsiStringConstRef delimiter = "\r\n" )
データを Base64 エンコードします。
static
SFCError
EncodeQuotedPrintable( ACharConstPtr in , UInt32 size , SFXBufferPtr out , UInt32 chars = 64 , Bool text = true )
EncodeQuotedPrintable( SFXAnsiStringConstRef in , SFXAnsiStringPtr out , UInt32 chars = 64 , Bool text = true )
EncodeQuotedPrintable( SFXBufferConstRef in , SFXBufferPtr out , UInt32 chars = 64 , Bool text = true )
データを Quoted-Printable エンコードします。
static
Bool
FindNextBoundary( ACharConstPtr start , ACharConstPtr end , SFXAnsiStringConstRef boundary , ACharConstHandle found , ACharConstHandle next )
MIME ドキュメントで、次の boundary 文字列を検索します。
static
UInt32
GetEncodedSizeBase64( UInt32 size , UInt32 chars , UInt32 delimiter )
データを Base64 エンコードしたときのサイズを取得します。
static
UInt32
GetEncodedSizeQuotedPrintable( ACharConstPtr in , UInt32 size , UInt32 chars , Bool text )
データを Quoted-Printable エンコードしたときのサイズを取得します。
static
SFCError
GetHMACMD5( VoidConstPtr in , UInt32 size , SFXBufferConstRef key , SFXBufferPtr out , Bool isXdigit )
GetHMACMD5( SFXAnsiStringConstRef in , SFXAnsiStringConstRef key , SFXAnsiStringPtr out , Bool isXdigit )
GetHMACMD5( SFXBufferConstRef in , SFXBufferConstRef key , SFXBufferPtr out , Bool isXdigit )
HMAC-MD5 を取得します。
static
SFCError
GetKeyedMD5( VoidConstPtr datagram , UInt32 size , SFXBufferConstRef key , AChar keyfill , SFXBufferPtr out , Bool isXdigit )
GetKeyedMD5( SFXAnsiStringConstRef datagram , SFXAnsiStringConstRef key , AChar keyfill , SFXAnsiStringPtr out , Bool isXdigit )
GetKeyedMD5( SFXBufferConstRef datagram , SFXBufferConstRef key , AChar keyfill , SFXBufferPtr out , Bool isXdigit )
Keyed-MD5 を取得します。
static
SFCError
GetMD5( VoidConstPtr in , UInt32 size , SFXBufferPtr out , Bool isXdigit )
GetMD5( SFXAnsiStringConstRef in , SFXAnsiStringPtr out , Bool isXdigit )
GetMD5( SFXBufferConstRef in , SFXBufferPtr out , Bool isXdigit )
MD5 を取得します。
static
SInt16
HexToByte( AChar c1 , AChar c2 )
2 桁の 16 進数(文字列)を整数に変換します。
static
SInt16
HexToNibble( AChar c )
1 桁の 16 進数(文字)を整数に変換します。
static
Bool
IsAtext( AChar c )
指定した文字が atext 文字かどうかを判定します。
static
Bool
IsCTL( AChar c )
指定した文字が コントロール文字かどうかを判定します。
static
Bool
IsTokenChar( AChar c )
指定した文字が トークンを構成する文字かどうかを判定します。
static
Bool
IsTspecials( AChar c )
指定した文字が TSPECIAL 文字かどうかを判定します。
static
Bool
IsValidFieldName( ACharConstPtr start , ACharConstPtr end = null )
メールヘッダーのフィールドとして有効かどうかを判定します。
static
Bool
IsWSP( AChar c )
指定した文字が空白かどうかどうかを判定します。
static
SFCError
JISToShiftJIS( SFXAnsiStringConstRef in , SFXAnsiStringPtr out , AChar unconvChar = '\0' )
JIS コード ( iso-2022-jp ) の文字列を Shift JIS コードに変換します。
static
AChar
NibbleToHex( Byte nibble )
数値を 16 進数の文字に変換します。
static
SFCError
ParseAddrSpec( ACharConstPtr start , ACharConstPtr end , ACharConstHandle next , SFXAnsiStringPtr value )
文字列をメール アドレス ( addr-spec ) として取得します。
static
SFCError
ParseAtom( ACharConstPtr start , ACharConstPtr end , ACharConstHandle next , SFXAnsiStringPtr value )
文字列を atom として取得します。
static
SFCError
ParseContentType( SFXAnsiStringConstRef fieldValue , SFXAnsiStringPtr mainType , SFXAnsiStringPtr subType , SFXPropertyPtr paramList )
文字列を Content-Type フィールドのデータとして取得します。
static
SFCError
ParseDate( ACharConstPtr start , ACharConstPtr end , ACharConstHandle next , SFXDatePtr date , SInt16Ptr zone )
ParseDate( SFXAnsiStringConstRef str , SFXDatePtr date , SInt16Ptr zone )
文字列を日時として取得します。
static
SFCError
ParseDotAtom( ACharConstPtr start , ACharConstPtr end , ACharConstHandle next , SFXAnsiStringPtr value )
文字列を dot-atom として取得します。
static
SFCError
ParseDotAtomText( ACharConstPtr start , ACharConstPtr end , ACharConstHandle next , SFXAnsiStringPtr value )
文字列を dot-atom-text として取得します。
static
SFCError
ParseHeaderLine( ACharConstPtr start , ACharConstPtr end , ACharConstHandle next , SFXAnsiStringPtr value1 , SFXAnsiStringPtr value2 )
メールヘッダーの 1 行を取得します。
static
SFCError
ParseMailbox( ACharConstPtr start , ACharConstPtr end , ACharConstHandle next , SFXAnsiStringPtr name , SFXAnsiStringPtr addr )
ParseMailbox( SFXAnsiStringConstRef str , SFXAnsiStringPtr name , SFXAnsiStringPtr addr )
文字列をメール アドレス ( mailbox ) として取得します。
static
SFCError
ParseMailboxList( ACharConstPtr start , ACharConstPtr end , ACharConstHandle next , MailboxHandle mailboxes , SInt32Ptr mbxCount )
ParseMailboxList( SFXAnsiStringConstRef str , MailboxHandle mailboxes , SInt32Ptr mbxCount )
文字列をメール アドレス ( mailbox ) のリストとして取得します。
static
SFCError
ParseParameter( ACharConstPtr start , ACharConstPtr end , ACharConstHandle next , SFXAnsiStringPtr name , SFXAnsiStringPtr value )
文字列をパラメータとして取得します。
static
SFCError
ParseParameterList( ACharConstPtr start , ACharConstPtr end , SFXPropertyPtr paramList )
文字列をパラメータのリストとして取得します。
static
SFCError
ParsePhrase( ACharConstPtr start , ACharConstPtr end , ACharConstHandle next , SFXAnsiStringPtr value )
文字列を phrase として取得します。
static
SFCError
ParseQuotedString( ACharConstPtr start , ACharConstPtr end , ACharConstHandle next , SFXAnsiStringPtr value )
文字列を quoted-string として取得します。
static
SFCError
ParseToken( ACharConstPtr start , ACharConstPtr end , ACharConstHandle next , SFXAnsiStringPtr value )
文字列を token として取得します。
static
SFCError
ParseWord( ACharConstPtr start , ACharConstPtr end , ACharConstHandle next , SFXAnsiStringPtr value )
文字列を word として取得します。
static
SFCError
ShiftJISToJIS( SFXAnsiStringConstRef in , SFXAnsiStringPtr out , AChar unconvChar = '\0' )
Shift_JIS コードの文字列を JIS コード ( iso-2022-jp ) に変換します。
static
Void
SkipUntilCRLF( ACharConstHandle start )
次の改行位置または '\0' 文字の位置を取得します。
Mailbox
メール アドレスを表す構造体です。

SFXMailUtility::DecodeBase64
Base64 エンコードされたデータをデコードします。
[ public, static ]
SFCError DecodeBase64(
    ACharConstPtr in   // Base64 エンコードされたデータへのポインタ
    UInt32 size        // Base64 エンコードされたデータのサイズ
    SFXBufferPtr out   // 出力バッファへのポインタ
);
[ public, static ]
SFCError DecodeBase64(
    SFXBufferConstRef in   // Base64 エンコードされたデータへの参照
    SFXBufferPtr out       // 出力バッファへのポインタ
);
[ public, static ]
SFCError DecodeBase64(
    SFXAnsiStringConstRef in   // Base64 エンコードされたデータへの参照
    SFXAnsiStringPtr out       // 出力バッファへのポインタ
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 不正な文字があるとき : SFERR_INVALID_FORMAT
  • 引数が正しくないとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

解説

RFC2045 ( MIME Part One : Format of Internet Message Bodies ) で定義される、Base64 形式でエンコードされたデータをデコードします。

BREW ラッパークラスの SFBWebUtil::DecodeBase64 関数との違いは、改行の処理です。

参照

SFXMailUtility::EncodeBase64


SFXMailUtility::DecodeQuotedPrintable
Quoted-Printable エンコードされたデータをデコードします。
[ public, static ]
SFCError DecodeQuotedPrintable(
    ACharConstPtr in   // Quoted-Printable エンコードされたデータへのポインタ
    UInt32 size        // Quoted-Printable エンコードされたデータのサイズ
    SFXBufferPtr out   // 出力バッファへのポインタ
    Bool text = true   // テキスト モード
);
[ public, static ]
SFCError DecodeQuotedPrintable(
    SFXBufferConstRef in   // Quoted-Printable エンコードされたデータへの参照
    SFXBufferPtr out       // 出力バッファへのポインタ
    Bool text = true       // テキスト モード
);
[ public, static ]
SFCError DecodeQuotedPrintable(
    SFXAnsiStringConstRef in   // Quoted-Printable エンコードされたデータへの参照
    SFXAnsiStringPtr out       // 出力バッファへのポインタ
    Bool text = true           // テキスト モード
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 不正な文字があるとき : SFERR_INVALID_FORMAT
  • 引数が正しくないとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

解説

RFC2045 ( MIME Part One : Format of Internet Message Bodies ) で定義される、Quoted-Printable 形式でエンコードされたデータをデコードします。

不正な文字は無効にしてデコードします。

[Caution] 注意

不正な文字がある場合、戻り値は SFERR_INVALID_FORMAT になりますが、デコードは正常に終了します。

参照

SFXMailUtility::EncodeQuotedPrintable


SFXMailUtility::EncodeBase64
データを Base64 エンコードします。
[ public, static ]
SFCError EncodeBase64(
    ACharConstPtr in                           // Base64 エンコードするデータへのポインタ
    UInt32 size                                // Base64 エンコードするデータのサイズ
    SFXBufferPtr out                           // 出力バッファへのポインタ
    UInt32 chars = 64                          // 1 行の文字数
    SFXAnsiStringConstRef delimiter = "\r\n"   // 改行文字列
);
[ public, static ]
SFCError EncodeBase64(
    SFXBufferConstRef in                       // Base64 エンコードするデータへの参照
    SFXBufferPtr out                           // 出力バッファへのポインタ
    UInt32 chars = 64                          // 1 行の文字数
    SFXAnsiStringConstRef delimiter = "\r\n"   // 改行文字列
);
[ public, static ]
SFCError EncodeBase64(
    SFXAnsiStringConstRef in                   // Base64 エンコードするデータへの参照
    SFXAnsiStringPtr out                       // 出力バッファへのポインタ
    UInt32 chars = 64                          // 1 行の文字数
    SFXAnsiStringConstRef delimiter = "\r\n"   // 改行文字列
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 引数が正しくないとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

解説

RFC2045 ( MIME Part One : Format of Internet Message Bodies ) で定義される、Base64 形式でデータをエンコードします。

BREW ラッパークラスの SFBWebUtil::EncodeBase64 関数との違いは、改行の処理です。

参照

SFXMailUtility::DecodeBase64 | SFBWebUtil::EncodeBase64


SFXMailUtility::EncodeQuotedPrintable
データを Quoted-Printable エンコードします。
[ public, static ]
SFCError EncodeQuotedPrintable(
    ACharConstPtr in    // Quoted-Printable エンコードするデータへのポインタ
    UInt32 size         // Quoted-Printable エンコードするデータのサイズ
    SFXBufferPtr out    // 出力バッファへのポインタ
    UInt32 chars = 64   // 1 行の文字数
    Bool text = true    // テキスト モードかどうか
);
[ public, static ]
SFCError EncodeQuotedPrintable(
    SFXBufferConstRef in   // Quoted-Printable エンコードするデータへの参照
    SFXBufferPtr out       // 出力バッファへのポインタ
    UInt32 chars = 64      // 1 行の文字数
    Bool text = true       // テキスト モードかどうか
);
[ public, static ]
SFCError EncodeQuotedPrintable(
    SFXAnsiStringConstRef in   // Quoted-Printable エンコードするデータへの参照
    SFXAnsiStringPtr out       // 出力バッファへのポインタ
    UInt32 chars = 64          // 1 行の文字数
    Bool text = true           // テキスト モードかどうか
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 引数が正しくないとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

解説

RFC2045 ( MIME Part One : Format of Internet Message Bodies ) で定義される、Quoted-Printable 形式でデータをエンコードします。

参照

SFXMailUtility::DecodeQuotedPrintable


SFXMailUtility::FindNextBoundary
MIME ドキュメントで、次の boundary 文字列を検索します。
[ public, static ]
Bool FindNextBoundary(
    ACharConstPtr start              // 検索開始位置へのポインタ
    ACharConstPtr end                // 検索終了位置へのポインタ
    SFXAnsiStringConstRef boundary   // boundary 文字列
    ACharConstHandle found           // 見つかった boundary 文字列の位置へのポインタを格納するハンドル
    ACharConstHandle next            // 見つかった boundary 文字列の次の文字へのポインタを格納するハンドル
);

引数

start

検索する MIME ドキュメントの先頭へのポインタです。

end

検索する MIME ドキュメントの終端へのポインタです。 このポインタが指す文字は、検索対象に含まれません。

boundary

検索する boundary 文字列です。

found

見つかった boundary 文字列の位置( boundary 文字列の前にある CRLF の CR 文字)へのポインタが格納されます。取得する必要がない場合は null を指定します。

next

見つかった boundary 文字列の後にある最初の CRLF の次の文字、または検索する MIME ドキュメントの終端へのポインタが格納されます。取得する必要がない場合は null を指定します。

戻り値

終端 ( '--' と boundary 文字列と '--' で構成される文字列 ) ではない boundary 文字列が見つかった場合、true を返します。

boundary の終端 ( '--' と boundary 文字列と '--' で構成される文字列 ) が見つかった場合、false を返します。

boundary の終端 ( '--' と boundary 文字列と '--' で構成される文字列 ) が見つからず、検索する文字列の終端まで到達した場合は false を返します。このとき、found と next は共に end と同じになります。

解説

boundary について : RFC2049 ( MIME Part Five : Conformance Criteria and Examples. Appendix A -- A Complex Multipart Example )


SFXMailUtility::GetEncodedSizeBase64
データを Base64 エンコードしたときのサイズを取得します。
[ public, static ]
UInt32 GetEncodedSizeBase64(
    UInt32 size        // Base64 形式にエンコードするデータのサイズ
    UInt32 chars       // 1 行の文字数
    UInt32 delimiter   // 改行文字列の長さ
);

SFXMailUtility::GetEncodedSizeQuotedPrintable
データを Quoted-Printable エンコードしたときのサイズを取得します。
[ public, static ]
UInt32 GetEncodedSizeQuotedPrintable(
    ACharConstPtr in   // Quoted-Printable エンコードするデータ
    UInt32 size        // Quoted-Printable エンコードするデータのサイズ
    UInt32 chars       // 1 行の文字数
    Bool text          // テキスト モードかどうか
);

SFXMailUtility::GetHMACMD5
HMAC-MD5 を取得します。
[ public, static ]
SFCError GetHMACMD5(
    VoidConstPtr in         // 入力データ
    UInt32 size             // 入力データのサイズ
    SFXBufferConstRef key   // キーへの参照
    SFXBufferPtr out        // 出力バッファへのポインタ
    Bool isXdigit           // 16 進数で出力するかどうか
);
[ public, static ]
SFCError GetHMACMD5(
    SFXBufferConstRef in    // 入力データ
    SFXBufferConstRef key   // キーへの参照
    SFXBufferPtr out        // 出力バッファへのポインタ
    Bool isXdigit           // 16 進数で出力するかどうか
);
[ public, static ]
SFCError GetHMACMD5(
    SFXAnsiStringConstRef in    // 入力データ
    SFXAnsiStringConstRef key   // キーへの参照
    SFXAnsiStringPtr out        // 出力文字列へのポインタ
    Bool isXdigit               // 16 進数で出力するかどうか
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 引数が正しくないとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

参照

SFXMailUtility::GetMD5 | SFXMailUtility::GetKeyedMD5


SFXMailUtility::GetKeyedMD5
Keyed-MD5 を取得します。
[ public, static ]
SFCError GetKeyedMD5(
    VoidConstPtr datagram   // 入力データ
    UInt32 size             // 入力データのサイズ
    SFXBufferConstRef key   // キーへの参照
    AChar keyfill           // パッド
    SFXBufferPtr out        // 出力バッファへのポインタ
    Bool isXdigit           // 16 進数で出力するかどうか
);
[ public, static ]
SFCError GetKeyedMD5(
    SFXBufferConstRef datagram   // 入力データ
    SFXBufferConstRef key        // キーへの参照
    AChar keyfill                // パッド
    SFXBufferPtr out             // 出力バッファへのポインタ
    Bool isXdigit                // 16 進数で出力するかどうか
);
[ public, static ]
SFCError GetKeyedMD5(
    SFXAnsiStringConstRef datagram   // 入力データ
    SFXAnsiStringConstRef key        // キー
    AChar keyfill                    // パッド
    SFXAnsiStringPtr out             // 出力文字列へのポインタ
    Bool isXdigit                    // 16 進数で出力するかどうか
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 引数が正しくないとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

参照

SFXMailUtility::GetMD5 | SFXMailUtility::GetHMACMD5


SFXMailUtility::GetMD5
MD5 を取得します。
[ public, static ]
SFCError GetMD5(
    VoidConstPtr in    // 入力データ
    UInt32 size        // 入力データのサイズ
    SFXBufferPtr out   // 出力バッファへのポインタ
    Bool isXdigit      // 16 進数で出力するかどうか
);
[ public, static ]
SFCError GetMD5(
    SFXBufferConstRef in   // 入力データ
    SFXBufferPtr out       // 出力バッファへのポインタ
    Bool isXdigit          // 16 進数で出力するかどうか
);
[ public, static ]
SFCError GetMD5(
    SFXAnsiStringConstRef in   // 入力データ
    SFXAnsiStringPtr out       // 出力文字列へのポインタ
    Bool isXdigit              // 16 進数で出力するかどうか
);

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 引数が正しくないとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

解説

SFXMailUtility::GetMD5 関数は SFBHash クラスのラッパー関数です。

参照

SFXMailUtility::GetKeyedMD5 | SFXMailUtility::GetHMACMD5 | SFBHash


SFXMailUtility::HexToByte
2 桁の 16 進数(文字列)を整数に変換します。
[ public, static ]
SInt16 HexToByte(
    AChar c1   // 変換する 2 桁の 16 進数の上位桁の文字
    AChar c2   // 変換する 2 桁の 16 進数の下位桁の文字
);

戻り値

変換に成功した場合はその値、失敗した場合は -1 を返します。

解説

例えば、1B( c1 = '1'、c2 = 'B' ) は 27 に変換されます。

参照

SFXMailUtility::HexToNibble


SFXMailUtility::HexToNibble
1 桁の 16 進数(文字)を整数に変換します。
[ public, static ]
SInt16 HexToNibble(
    AChar c   // 変換する 16 進数(文字)
);

戻り値

  • 成功したとき : 変換に成功した値
  • 失敗したとき : -1

解説

例えば、'1' は 1 に、'B' は 11 に、'f' は 15 に変換されます。

参照

SFXMailUtility::HexToByte | SFXMailUtility::NibbleToHex


SFXMailUtility::IsAtext
指定した文字が atext 文字かどうかを判定します。
[ public, static ]
Bool IsAtext(
    AChar c   // 判定する文字
);

引数

c

判定する文字を指定します。

戻り値

  • atext 文字のとき : true
  • atext 文字以外のとき : false

解説

RFC2822 ( Internet Message Format ) で定義される、atext 文字かどうかを判定します。

atext 文字とは、ヘッダー フィールドの中で atom を構成する英数字と "!"、"#"、"$"、"%"などの記号です。

[Note] atext について

詳細情報: RFC2822 (Internet Message Format)

参照

SFXMailUtility::IsCTL | SFXMailUtility::IsTokenChar | SFXMailUtility::IsTspecials | SFXMailUtility::IsWSP


SFXMailUtility::IsCTL
指定した文字が コントロール文字かどうかを判定します。
[ public, static ]
Bool IsCTL(
    AChar c   // 判定する文字
);

引数

c

判定する文字を指定します。

戻り値

  • コントロール文字のとき : true
  • コントロール文字以外のとき : false

解説

コントロール文字とは、"0x00" から "0x19" までと "0x7f" の文字です。

参照

SFXMailUtility::IsAtext | SFXMailUtility::IsTokenChar | SFXMailUtility::IsTspecials | SFXMailUtility::IsWSP


SFXMailUtility::IsTokenChar
指定した文字が トークンを構成する文字かどうかを判定します。
[ public, static ]
Bool IsTokenChar(
    AChar c   // 判定する文字
);

引数

c

判定する文字を指定します。

戻り値

  • トークンを構成する文字のとき : true
  • トークンを構成する文字以外のとき : false

解説

RFC2045 ( MIME Part One : Format of Internet Message Bodies ) で定義される、トークンを構成する文字かどうかを判定します。

トークンを構成する文字とは、TSPECAIL、スペース、コントロール以外の任意の文字です。

[Note] トークンを構成する文字について

詳細情報: RFC2045 (MIME Part One : Format of Internet Message Bodies).

参照

SFXMailUtility::IsAtext | SFXMailUtility::IsCTL | SFXMailUtility::IsTspecials | SFXMailUtility::IsWSP


SFXMailUtility::IsTspecials
指定した文字が TSPECIAL 文字かどうかを判定します。
[ public, static ]
Bool IsTspecials(
    AChar c   // 判定する文字
);

引数

c

判定する文字を指定します。

戻り値

  • TSPECIAL 文字のとき : true
  • TSPECIAL 文字以外のとき : false

解説

RFC2045 ( MIME Part One : Format of Internet Message Bodies ) で定義される、TSPECIAL 文字かどうかを判定します。

TSPECIAL 文字とは、ヘッダー フィールドをデータとして扱う場合、クオート( " )する必要がある記号です。

[Note] ATSPECIAL 文字について

詳細情報: RFC2045 (MIME Part One : Format of Internet Message Bodies)

参照

SFXMailUtility::IsAtext | SFXMailUtility::IsCTL | SFXMailUtility::IsTokenChar | SFXMailUtility::IsWSP


SFXMailUtility::IsValidFieldName
メールヘッダーのフィールドとして有効かどうかを判定します。
[ public, static ]
Bool IsValidFieldName(
    ACharConstPtr start        // フィールドの先頭へのポインタ
    ACharConstPtr end = null   // フィールドの終端へのポインタ
);

引数

start

フィールドの先頭を指定します。

end

フィールドの終端を指定します。null を指定した場合は '\0' 文字を終端とします。

戻り値

  • 指定した文字列の中に ASCII 値で 32 以下、または 127 以上の文字がないとき : true
  • 指定した文字列の中に ASCII 値で 32 以下、または 127 以上の文字があるとき : false

SFXMailUtility::IsWSP
指定した文字が空白かどうかどうかを判定します。
[ public, static ]
Bool IsWSP(
    AChar c   // 判定する文字
);

引数

c

判定する文字を指定します。

戻り値

  • 空白文字のとき : true
  • 空白文字以外のとき : false

解説

RFC2822 ( Internet Message Format ) で定義される、空白文字 ( 空白または TAB 文字 ) かどうかを判定します。

[Note] 空白文字について

詳細情報: RFC2822 (Internet Message Format)

参照

SFXMailUtility::IsAtext | SFXMailUtility::IsCTL | SFXMailUtility::IsTokenChar | SFXMailUtility::IsTspecials


SFXMailUtility::JISToShiftJIS
JIS コード ( iso-2022-jp ) の文字列を Shift JIS コードに変換します。
[ public, static ]
SFCError JISToShiftJIS(
    SFXAnsiStringConstRef in   // 変換元の文字列への参照
    SFXAnsiStringPtr out       // 変換後の文字列へのポインタ
    AChar unconvChar = '\0'    // 変換できない文字の代替文字
);

引数

in

変換元の文字列です。JIS コード ( iso-2022-jp ) の文字列を指定します。

out

変換後の文字列です。

unconvChar

変換できない文字に関する代替文字を指定します。引数のデフォルト値は '\0' です。'\0' の場合、代替文字は使われません。

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 変換できない文字があったとき : SFERR_INVALID_FORMAT
  • 引数が正しくないとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY

unconvChar 引数を指定した場合、変換できない文字は unconvChar 引数で指定した代替文字で置き換えられ、戻り値は必ず SFERR_NO_ERROR になります。

解説

半角カナもサポートしています。

参照

SFXMailUtility::ShiftJISToJIS


SFXMailUtility::NibbleToHex
数値を 16 進数の文字に変換します。
[ public, static ]
AChar NibbleToHex(
    Byte nibble   // 変換する数値
);

戻り値

  • 成功したとき : 変換に成功した値
  • 失敗したとき : -1 ( を AChar でキャストしたもの )

解説

例えば、1 は '1'、11 は 'B' に変換されます。

参照

SFXMailUtility::HexToNibble | SFXMailUtility::HexToByte


SFXMailUtility::ParseAddrSpec
文字列をメール アドレス ( addr-spec ) として取得します。
[ public, static ]
SFCError ParseAddrSpec(
    ACharConstPtr start      // 解析対象文字列の先頭へのポインタ
    ACharConstPtr end        // 解析対象文字列の終端へのポインタ
    ACharConstHandle next    // 解析終了位置へのハンドル
    SFXAnsiStringPtr value   // 解析結果のメール アドレス ( addr-spec ) へのポインタ
);

引数

start

解析する文字列の先頭へのポインタです。

end

解析する文字列の終端へのポインタです。 このアドレスが指し示す文字自体は解析対象に含まれません。

next

メール アドレス ( addr-spec ) の次の文字へのポインタを格納するハンドルです。 取得する必要がない場合は null を指定します。

value

解析結果のメール アドレス ( addr-spec ) へのポインタです。 取得する必要がない場合は null を指定します。

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 文字列の書式が間違っているとき : SFERR_INVALID_FORMAT
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

解説

文字列を解析して、RFC2822 ( Internet Message Format ) で定義される、メール アドレス ( addr-spec ) として取得します。

From: フィールドや To: フィールドのメール アドレスを解析する場合は、 SFXMailUtility::ParseMailbox 関数や、SFXMailUtility::ParseMailboxList 関数を使う必要があります。

参照

SFXMailUtility::ParseAtom | SFXMailUtility::ParseContentType | SFXMailUtility::ParseDate | SFXMailUtility::ParseDotAtom | SFXMailUtility::ParseDotAtomText | SFXMailUtility::ParseMailbox | SFXMailUtility::ParseMailboxList | SFXMailUtility::ParseParameter | SFXMailUtility::ParseParameterList | SFXMailUtility::ParsePhrase | SFXMailUtility::ParseQuotedString | SFXMailUtility::ParseToken | SFXMailUtility::ParseWord


SFXMailUtility::ParseAtom
文字列を atom として取得します。
[ public, static ]
SFCError ParseAtom(
    ACharConstPtr start      // 解析対象文字列の先頭へのポインタ
    ACharConstPtr end        // 解析対象文字列の終端へのポインタ
    ACharConstHandle next    // 解析終了位置へのハンドル
    SFXAnsiStringPtr value   // 解析結果の atom へのポインタ
);

引数

start

解析する文字列の先頭へのポインタです。

end

解析する文字列の終端へのポインタです。 このアドレスが指し示す文字自体は、解析対象に含まれません。

next

atom の次の文字へのポインタを格納するハンドルです。 取得する必要がない場合は null を指定します。

value

解析結果の atom へのポインタです。 取得する必要がない場合は null を指定します。

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 文字列の書式が間違っているとき : SFERR_INVALID_FORMAT
  • メモリ不足のとき : SFERR_NO_MEMORY

解説

文字列を解析して、RFC2822 ( Internet Message Format ) で定義される、atom として取得します。

参照

SFXMailUtility::ParseAddrSpec | SFXMailUtility::ParseContentType | SFXMailUtility::ParseDate | SFXMailUtility::ParseDotAtom | SFXMailUtility::ParseDotAtomText | SFXMailUtility::ParseMailbox | SFXMailUtility::ParseMailboxList | SFXMailUtility::ParseParameter | SFXMailUtility::ParseParameterList | SFXMailUtility::ParsePhrase | SFXMailUtility::ParseQuotedString | SFXMailUtility::ParseToken | SFXMailUtility::ParseWord


SFXMailUtility::ParseContentType
文字列を Content-Type フィールドのデータとして取得します。
[ public, static ]
SFCError ParseContentType(
    SFXAnsiStringConstRef fieldValue   // 解析対象文字列
    SFXAnsiStringPtr mainType          // タイプ
    SFXAnsiStringPtr subType           // サブタイプ
    SFXPropertyPtr paramList           // パラメータ
);

引数

fieldValue

解析する文字列です。

mainType

解析結果の Content-Type へのポインタです。 取得する必要がない場合は null を指定します。

subType

解析結果の Content-Sub-Type へのポインタです。 取得する必要がない場合は null を指定します。

paramList

解析結果のパラメータ リストへのポインタです 取得する必要がない場合は null を指定します。

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 文字列の書式が間違っているとき : SFERR_INVALID_FORMAT
  • 引数が正しくないとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

解説

文字列を解析して、RFC2045 ( MIME Part One : Format of Internet Message Bodies ) で定義される、content-type フィールドのデータとして取得します。

参照

SFXMailUtility::ParseAddrSpec | SFXMailUtility::ParseAtom | SFXMailUtility::ParseDate | SFXMailUtility::ParseDotAtom | SFXMailUtility::ParseDotAtomText | SFXMailUtility::ParseMailbox | SFXMailUtility::ParseMailboxList | SFXMailUtility::ParseParameter | SFXMailUtility::ParseParameterList | SFXMailUtility::ParsePhrase | SFXMailUtility::ParseQuotedString | SFXMailUtility::ParseToken | SFXMailUtility::ParseWord


SFXMailUtility::ParseDate
文字列を日時として取得します。
[ public, static ]
SFCError ParseDate(
    ACharConstPtr start     // 解析対象文字列の先頭へのポインタ
    ACharConstPtr end       // 解析対象文字列の終端へのポインタ
    ACharConstHandle next   // 解析終了位置へのハンドル
    SFXDatePtr date         // 日時へのポインタ
    SInt16Ptr zone          // タイムゾーンへのポインタ
);
[ public, static ]
SFCError ParseDate(
    SFXAnsiStringConstRef str   // 解析対象文字列
    SFXDatePtr date             // 日時へのポインタ
    SInt16Ptr zone              // タイムゾーンへのポインタ
);

引数

start

解析する文字列の先頭へのポインタです。

end

解析する文字列の終端へのポインタです。 このアドレスが指し示す文字自体は、解析対象に含まれません。

next

日時をあらわす文字列の後の文字へのポインタを格納するハンドルです。 取得する必要がない場合は null を指定します。

dateTime

解析結果の日時へのポインタです。 取得する必要がない場合は null を指定します。

zone

解析結果の日時のタイムゾーンへのポインタです。 UTC に対する時差として返されます。 取得する必要がない場合は null を指定します。

str

解析する文字列です。

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 文字列の書式が間違っているとき : SFERR_INVALID_FORMAT
  • メモリ不足のとき : SFERR_NO_MEMORY

解説

文字列を解析して、RFC2822 ( Internet Message Format ) で定義される、日時として取得します。

参照

SFXMailUtility::ParseAddrSpec | SFXMailUtility::ParseAtom | SFXMailUtility::ParseContentType | SFXMailUtility::ParseDotAtom | SFXMailUtility::ParseDotAtomText | SFXMailUtility::ParseMailbox | SFXMailUtility::ParseMailboxList | SFXMailUtility::ParseParameter | SFXMailUtility::ParseParameterList | SFXMailUtility::ParsePhrase | SFXMailUtility::ParseQuotedString | SFXMailUtility::ParseToken | SFXMailUtility::ParseWord


SFXMailUtility::ParseDotAtom
文字列を dot-atom として取得します。
[ public, static ]
SFCError ParseDotAtom(
    ACharConstPtr start      // 解析対象文字列の先頭へのポインタ
    ACharConstPtr end        // 解析対象文字列の終端へのポインタ
    ACharConstHandle next    // 解析終了位置へのハンドル
    SFXAnsiStringPtr value   // 解析結果の dot-atom へのポインタ
);

引数

start

解析する文字列の先頭へのポインタです。

end

解析する文字列の終端へのポインタです。 このアドレスが指し示す文字自体は、解析対象に含まれません。

next

dot-atom の次の文字へのポインタを格納するハンドルです。 取得する必要がない場合は null を指定します。

value

解析結果の dot-atom へのポインタです。 取得する必要がない場合は null を指定します。

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 文字列の書式が間違っているとき : SFERR_INVALID_FORMAT
  • メモリ不足のとき : SFERR_NO_MEMORY

解説

文字列を解析して、RFC2822 ( Internet Message Format ) で定義される、dot-atom として取得します。

dot-atom が dot-atom-text と異なるのは、文字列の先頭と終端に空白を許す点だけです。

SFXMailUtility::ParseDotAtom 関数は、文字列の初めの空白文字を読み飛ばします。

参照

SFXMailUtility::ParseAddrSpec | SFXMailUtility::ParseAtom | SFXMailUtility::ParseContentType | SFXMailUtility::ParseDate | SFXMailUtility::ParseDotAtomText | SFXMailUtility::ParseMailbox | SFXMailUtility::ParseMailboxList | SFXMailUtility::ParseParameter | SFXMailUtility::ParseParameterList | SFXMailUtility::ParsePhrase | SFXMailUtility::ParseQuotedString | SFXMailUtility::ParseToken | SFXMailUtility::ParseWord


SFXMailUtility::ParseDotAtomText
文字列を dot-atom-text として取得します。
[ public, static ]
SFCError ParseDotAtomText(
    ACharConstPtr start      // 解析対象文字列の先頭へのポインタ
    ACharConstPtr end        // 解析対象文字列の終端へのポインタ
    ACharConstHandle next    // 解析終了位置へのハンドル
    SFXAnsiStringPtr value   // 解析結果の dot-atom-text へのポインタ
);

引数

start

解析する文字列の先頭へのポインタです。

end

解析する文字列の終端へのポインタです。 このアドレスが指し示す文字自体は、解析対象に含まれません。

next

dot-atom-text の次の文字へのポインタを格納するハンドルです。 取得する必要がない場合は null を指定します。

value

解析結果の dot-atom-text へのポインタです。 取得する必要がない場合は null を指定します。

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 文字列の書式が間違っているとき : SFERR_INVALID_FORMAT
  • メモリ不足のとき : SFERR_NO_MEMORY

解説

文字列を解析して、RFC2822 ( Internet Message Format ) で定義される、dot-atom-text として取得します。

dot-atom-text とは、atext と ピリオド '.' からなる文字列です。ピリオドは 2 つ続けることや、文字列の先頭や終端に置けません。

SFXMailUtility::ParseDotAtomText 関数は、文字列の初めの空白文字を読み飛ばしません。

文字列の初めが空白文字の場合は SFERR_INVALID_FORMAT を返します。

参照

SFXMailUtility::ParseAddrSpec | SFXMailUtility::ParseAtom | SFXMailUtility::ParseContentType | SFXMailUtility::ParseDate | SFXMailUtility::ParseDotAtom | SFXMailUtility::ParseMailbox | SFXMailUtility::ParseMailboxList | SFXMailUtility::ParseParameter | SFXMailUtility::ParseParameterList | SFXMailUtility::ParsePhrase | SFXMailUtility::ParseQuotedString | SFXMailUtility::ParseToken | SFXMailUtility::ParseWord


SFXMailUtility::ParseHeaderLine
メールヘッダーの 1 行を取得します。
[ public, static ]
SFCError ParseHeaderLine(
    ACharConstPtr start       // 解析対象文字列の先頭へのポインタ
    ACharConstPtr end         // 解析対象文字列の終端へのポインタ
    ACharConstHandle next     // 解析終了位置へのハンドル
    SFXAnsiStringPtr value1   // 解析結果のフィールド名へのポインタ
    SFXAnsiStringPtr value2   // 解析結果のフィールド値へのポインタ
);

引数

start

解析する文字列の先頭へのポインタです。

end

解析する文字列の終端へのポインタです。 このアドレスが指し示す文字自体は、解析対象に含まれません。

next

次の行へのポインタを格納するハンドルです。 取得する必要がない場合は null を指定します。

value1

解析結果のフィールド名へのポインタです。 取得する必要がない場合は null を指定します。

value2

解析結果のフィールド値へのポインタです。 取得する必要がない場合は null を指定します。

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 文字列の書式が間違っているとき : SFERR_INVALID_FORMAT
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

解説

メールメッセージのヘッダーの 1 行を解析して取得します。ヘッダーが複数行に分割されている場合 ( 2 行目以降が WSP から始まる) も正しく取得できます。


SFXMailUtility::ParseMailbox
文字列をメール アドレス ( mailbox ) として取得します。
[ public, static ]
SFCError ParseMailbox(
    ACharConstPtr start     // 解析対象文字列の先頭へのポインタ
    ACharConstPtr end       // 解析対象文字列の終端へのポインタ
    ACharConstHandle next   // 解析終了位置へのハンドル
    SFXAnsiStringPtr name   // 解析結果の名前へのポインタ
    SFXAnsiStringPtr addr   // 解析結果のメール アドレス ( mailbox ) へのポインタ
);
[ public, static ]
SFCError ParseMailbox(
    SFXAnsiStringConstRef str   // 解析対象文字列
    SFXAnsiStringPtr name       // 解析結果の名前へのポインタ
    SFXAnsiStringPtr addr       // 解析結果のメール アドレス ( mailbox ) へのポインタ
);

引数

start

解析する文字列の先頭へのポインタです。

end

解析する文字列の終端へのポインタです。 このアドレスが指し示す文字自体は、解析対象に含まれません。

next

メール アドレスの次の文字へのポインタを格納するハンドルです。 取得する必要がない場合は null を指定します。

name

解析結果の名前へのポインタです。 取得する必要がない場合は null を指定します。

addr

解析結果のメール アドレスへのポインタです。 取得する必要がない場合は null を指定します。

str

解析対象文字列です。

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 文字列の書式が間違っているとき : SFERR_INVALID_FORMAT
  • 引数が正しくないとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

解説

文字列を解析して、RFC2822 ( Internet Message Format ) で定義される、メール アドレス ( mailbox ) として取得します。

SFXMailUtility::ParseMailbox 関数は、次の (1)、(2) の addr-spec 形式、(3) の name-addr 形式を解析できます。

  1. my@example.com

  2. my@example.com (My Name)

  3. My Name <my@example.com>

(2)、(3)の場合、ディスプレイネーム( My Name )も取得できます。 SFXMailUtility::ParseMailbox 関数は単一の mailbox しか解析できません。

mailbox のリストを取得する場合は SFXMailUtility::ParseMailboxList 関数を使います。

参照

SFXMailUtility::ParseAddrSpec | SFXMailUtility::ParseAtom | SFXMailUtility::ParseContentType | SFXMailUtility::ParseDate | SFXMailUtility::ParseDotAtom | SFXMailUtility::ParseDotAtomText | SFXMailUtility::ParseMailboxList | SFXMailUtility::ParseParameter | SFXMailUtility::ParseParameterList | SFXMailUtility::ParsePhrase | SFXMailUtility::ParseQuotedString | SFXMailUtility::ParseToken | SFXMailUtility::ParseWord


SFXMailUtility::ParseMailboxList
文字列をメール アドレス ( mailbox ) のリストとして取得します。
[ public, static ]
SFCError ParseMailboxList(
    ACharConstPtr start       // 解析対象文字列の先頭へのポインタ
    ACharConstPtr end         // 解析対象文字列の終端へのポインタ
    ACharConstHandle next     // 解析終了位置へのハンドル
    MailboxHandle mailboxes   // メール アドレスのリスト
    SInt32Ptr mbxCount        // メールアドレスの数
);
[ public, static ]
SFCError ParseMailboxList(
    SFXAnsiStringConstRef str   // 解析対象文字列
    MailboxHandle mailboxes     // メール アドレスのリストへのポインタを格納するハンドル
    SInt32Ptr mbxCount          // メール アドレスの数
);

引数

start

解析する文字列の先頭へのポインタです。

end

解析する文字列の終端へのポインタです。 このアドレスが指し示す文字自体は、解析対象に含まれません。

next

メール アドレスの次の文字へのポインタを格納するハンドルです。 取得する必要がない場合は null を指定します。

mailboxes

解析結果のメール アドレスのリストへのポインタを格納するハンドルです。 SFXMailUtility::Mailbox の配列が渡されます。

配列は、呼び出し側が delete[] で解放する必要があります。 取得する必要がない場合は null を指定します。

mbxCount

解析結果のメール アドレスの数が格納される変数へのポインタです。 取得する必要がない場合は null を指定します。

str

解析対象の文字列です。

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 文字列の書式が間違っているとき : SFERR_INVALID_FORMAT
  • 引数が正しくないとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

解説

文字列を解析して、RFC2822 ( Internet Message Format ) で定義される、メール アドレス ( mailbox ) のリストとして取得します。

参照

SFXMailUtility::ParseAddrSpec | SFXMailUtility::ParseAtom | SFXMailUtility::ParseContentType | SFXMailUtility::ParseDate | SFXMailUtility::ParseDotAtom | SFXMailUtility::ParseDotAtomText | SFXMailUtility::ParseMailbox | SFXMailUtility::ParseParameter | SFXMailUtility::ParseParameterList | SFXMailUtility::ParsePhrase | SFXMailUtility::ParseQuotedString | SFXMailUtility::ParseToken | SFXMailUtility::ParseWord


SFXMailUtility::ParseParameter
文字列をパラメータとして取得します。
[ public, static ]
SFCError ParseParameter(
    ACharConstPtr start      // 解析対象文字列の先頭へのポインタ
    ACharConstPtr end        // 解析対象文字列の終端へのポインタ
    ACharConstHandle next    // 解析終了位置へのハンドル
    SFXAnsiStringPtr name    // 属性名へのポインタ
    SFXAnsiStringPtr value   // 値へのポインタ
);

引数

start

解析する文字列の先頭へのポインタです。

end

解析する文字列の終端へのポインタです。 このアドレスが指し示す文字自体は、解析対象に含まれません。

next

パラメータの次の文字へのポインタを格納するハンドルです。 取得する必要がない場合は null を指定します。

name

解析結果のパラメータの属性名へのポインタです。 取得する必要がない場合は null を指定します。

value

解析結果のパラメータの値へのポインタです。 取得する必要がない場合は null を指定します。

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 文字列の書式が間違っているとき : SFERR_INVALID_FORMAT
  • 引数が正しくないとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY

解説

文字列を解析して、RFC2045 ( MIME Part One : Format of Internet Message Bodies ) で定義される、attribute = value を表すパラメータとして取得します。

SFXMailUtility::ParseParameter 関数は単一のパラメータしか解析できません。

パラメータのリストを取得する場合は SFXMailUtility::ParseParameterList 関数を使います。

参照

SFXMailUtility::ParseAddrSpec | SFXMailUtility::ParseAtom | SFXMailUtility::ParseContentType | SFXMailUtility::ParseDate | SFXMailUtility::ParseDotAtom | SFXMailUtility::ParseDotAtomText | SFXMailUtility::ParseMailbox | SFXMailUtility::ParseMailboxList | SFXMailUtility::ParseParameterList | SFXMailUtility::ParsePhrase | SFXMailUtility::ParseQuotedString | SFXMailUtility::ParseToken | SFXMailUtility::ParseWord


SFXMailUtility::ParseParameterList
文字列をパラメータのリストとして取得します。
[ public, static ]
SFCError ParseParameterList(
    ACharConstPtr start        // 解析対象文字列の先頭へのポインタ
    ACharConstPtr end          // 解析対象文字列の終端へのポインタ
    SFXPropertyPtr paramList   // 解析結果
);

引数

start

解析する文字列の先頭へのポインタです。

end

解析する文字列の終端へのポインタです。 このアドレスが指し示す文字自体は、解析対象に含まれません。

paramList

解析結果のパラメータのリストへのポインタです。 取得する必要がない場合は null を指定します。

戻り値

  • 成功したとき : SFERR_NO_ERROR
  • 文字列の書式が間違っているとき : SFERR_INVALID_FORMAT
  • 引数が正しくないとき : SFERR_INVALID_PARAM
  • メモリ不足のとき : SFERR_NO_MEMORY
  • 失敗したとき : SFERR_FAILED

解説

文字列を解析して、RFC2045 ( MIME Part One : Format of Internet Message Bodies ) で定義される、attr1 = value2 , attr2 = value2 を表すパラメータのリストとして取得します。

参照

SFXMailUtility::ParseAddrSpec | SFXMailUtility::ParseAtom | SFXMailUtility::ParseContentType | SFXMailUtility::ParseDate | SFXMailUtility::ParseDotAtom | SFXMailUtility::ParseDotAtomText | SFXMailUtility::ParseMailbox |