SophiaFramework UNIVERSE 5.3 |
SFXMailUtility クラスは、 RFC2822(Internet Message Format) に準拠したメッセージのヘッダーを解析するためのパーサー機能や、 Base64 や Quoted-Printable のエンコードとデコード、MD5 ハッシュ変換、日本語文字コード変換などのユーティリティ機能を提供します。
注意 | |
---|---|
SFXMailUtility クラスは、 SFXSMTPSender / SFXMailMessage クラスを実装するときに使用される内部実装クラスです。 SFXSMTPSender / SFXMailMessage クラスに代わる開発者独自のメール送受信クラスやメールメッセージ作成クラスを実装する場合に使用します。 |
パブリック関数 | |
---|---|
static SFCError |
DecodeBase64(
ACharConstPtr in
, UInt32 size
, SFXBufferPtr out
) 指定されたデータを Base64 デコードします。
|
static SFCError |
DecodeBase64(
SFXBufferConstRef in
, SFXBufferPtr out
) 指定されたデータを Base64 デコードします。
|
static SFCError |
DecodeBase64(
SFXAnsiStringConstRef in
, SFXAnsiStringPtr out
) 指定されたデータを Base64 デコードします。
|
static SFCError |
DecodeQuotedPrintable(
ACharConstPtr in
, UInt32 size
, SFXBufferPtr out
, Bool text = true
) 指定されたデータを Quoted-Printable デコードします。
|
static SFCError |
DecodeQuotedPrintable(
SFXBufferConstRef in
, SFXBufferPtr out
, Bool text = true
) 指定されたデータを Quoted-Printable デコードします。
|
static SFCError |
DecodeQuotedPrintable(
SFXAnsiStringConstRef in
, SFXAnsiStringPtr out
, Bool text = true
) 指定されたデータを Quoted-Printable デコードします。
|
static SFCError |
EncodeBase64(
ACharConstPtr in
, UInt32 size
, SFXBufferPtr out
, UInt32 chars = 64
, SFXAnsiStringConstRef delimiter = "\r\n"
) 指定されたデータを Base64 エンコードします。
|
static SFCError |
EncodeBase64(
SFXBufferConstRef in
, SFXBufferPtr out
, UInt32 chars = 64
, SFXAnsiStringConstRef delimiter = "\r\n"
) 指定されたデータを Base64 エンコードします。
|
static SFCError |
EncodeBase64(
SFXAnsiStringConstRef in
, SFXAnsiStringPtr out
, UInt32 chars = 64
, SFXAnsiStringConstRef delimiter = "\r\n"
) 指定されたデータを Base64 エンコードします。
|
static SFCError |
EncodeQuotedPrintable(
ACharConstPtr in
, UInt32 size
, SFXBufferPtr out
, UInt32 chars = 64
, Bool text = true
) 指定されたデータを Quoted-Printable エンコードします。
|
static SFCError |
EncodeQuotedPrintable(
SFXBufferConstRef in
, SFXBufferPtr out
, UInt32 chars = 64
, Bool text = true
) 指定されたデータを Quoted-Printable エンコードします。
|
static SFCError |
EncodeQuotedPrintable(
SFXAnsiStringConstRef in
, SFXAnsiStringPtr out
, UInt32 chars = 64
, Bool text = true
) 指定されたデータを Quoted-Printable エンコードします。
|
static Bool |
FindNextBoundary(
ACharConstPtr start
, ACharConstPtr end
, SFXAnsiStringConstRef boundary
, ACharConstHandle found
, ACharConstHandle next
) 指定された文字列から指定された境界文字列を検索します。
|
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
) 指定されたデータの HMAC-MD5 ハッシュ値(128 ビット)を取得します。
|
static SFCError |
GetHMACMD5(
SFXBufferConstRef in
, SFXBufferConstRef key
, SFXBufferPtr out
, Bool isXdigit
) 指定されたデータの HMAC-MD5 ハッシュ値(128 ビット)を取得します。
|
static SFCError |
GetHMACMD5(
SFXAnsiStringConstRef in
, SFXAnsiStringConstRef key
, SFXAnsiStringPtr out
, Bool isXdigit
) 指定されたデータの HMAC-MD5 ハッシュ値(128 ビット)を取得します。
|
static SFCError |
GetKeyedMD5(
VoidConstPtr datagram
, UInt32 size
, SFXBufferConstRef key
, AChar keyfill
, SFXBufferPtr out
, Bool isXdigit
) 指定されたデータの Keyed-MD5 ハッシュ値(128 ビット)を取得します。
|
static SFCError |
GetKeyedMD5(
SFXBufferConstRef datagram
, SFXBufferConstRef key
, AChar keyfill
, SFXBufferPtr out
, Bool isXdigit
) 指定されたデータの Keyed-MD5 ハッシュ値(128 ビット)を取得します。
|
static SFCError |
GetKeyedMD5(
SFXAnsiStringConstRef datagram
, SFXAnsiStringConstRef key
, AChar keyfill
, SFXAnsiStringPtr out
, Bool isXdigit
) 指定されたデータの Keyed-MD5 ハッシュ値(128 ビット)を取得します。
|
static SFCError |
GetMD5(
VoidConstPtr in
, UInt32 size
, SFXBufferPtr out
, Bool isXdigit
) 指定されたデータの MD5 ハッシュ値(128 ビット)を取得します。
|
static SFCError |
GetMD5(
SFXBufferConstRef in
, SFXBufferPtr out
, Bool isXdigit
) 指定されたデータの MD5 ハッシュ値(128 ビット)を取得します。
|
static SFCError |
GetMD5(
SFXAnsiStringConstRef in
, SFXAnsiStringPtr out
, Bool isXdigit
) 指定されたデータの MD5 ハッシュ値(128 ビット)を取得します。
|
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
) 指定された文字が WSP 文字(空白文字または TAB 文字)かどうかを判定します。
|
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
) 指定された文字列から日時を取得します。
|
static SFCError |
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
) 指定された文字列からメールアドレス(mailbox)を取得します。
|
static SFCError |
ParseMailbox(
SFXAnsiStringConstRef str
, SFXAnsiStringPtr name
, SFXAnsiStringPtr addr
) 指定された文字列からメールアドレス(mailbox)を取得します。
|
static SFCError |
ParseMailboxList(
ACharConstPtr start
, ACharConstPtr end
, ACharConstHandle next
, MailboxHandle mailboxes
, SInt32Ptr mbxCount
) 指定された文字列からメールアドレスのリスト (mailbox-list)を取得します。
|
static SFCError |
ParseMailboxList(
SFXAnsiStringConstRef str
, MailboxHandle mailboxes
, SInt32Ptr mbxCount
) 指定された文字列からメールアドレスのリスト (mailbox-list)を取得します。
|
static SFCError |
ParseParameter(
ACharConstPtr start
, ACharConstPtr end
, ACharConstHandle next
, SFXAnsiStringPtr name
, SFXAnsiStringPtr value
) 指定された文字列から "attribute = value" で表されるパラメータを取得します。
|
static SFCError |
ParseParameterList(
ACharConstPtr start
, ACharConstPtr end
, SFXPropertyPtr paramList
) 指定された文字列から "attribute1 = value2; attribute2 = value2; ..." で表されるパラメータリストを取得します。
|
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
) ポインタを次の CRLF の次の文字または '\0' 文字の位置まで進めます。
|
static Void |
SkipWSP(
ACharConstHandle start
, ACharConstPtr end
) ポインタを WSP(空白文字または水平タブ)以外の文字まで進めます。
|
型 |
---|
Mailbox メールアドレスを表す構造体です。
|
[ public, static ] SFCError DecodeBase64( ACharConstPtr in // [入力] Base64 エンコードされたデータへのポインタ UInt32 size // [入力] Base64 エンコードされたデータのサイズ SFXBufferPtr out // [出力] Base64 デコードされたデータが格納された場所へのポインタ );
[ public, static ] SFCError DecodeBase64( SFXBufferConstRef in // [入力] Base64 エンコードされたデータへの参照 SFXBufferPtr out // [出力] Base64 デコードされたデータが格納された場所へのポインタ );
[ public, static ] SFCError DecodeBase64( SFXAnsiStringConstRef in // [入力] Base64 エンコードされたデータへの参照 SFXAnsiStringPtr out // [出力] Base64 デコードされたデータが格納された場所へのポインタ );
この関数は、指定されたデータを Base64 デコードします。
指定されたデータが Base64 でエンコードされたデータでない場合 (正確には 4 による剰余が 1 である位置にある文字が "=" のとき)、 SFERR_INVALID_FORMAT を返却します。
注意 | |
---|---|
指定されたデータが Base64 エンコードされていない場合も SFERR_NO_ERROR で終了する可能性があることに注意してください。 |
注意 | |
---|---|
SFBWebUtil::DecodeBase64 関数と異なり、 in 引数に指定されたデータに含まれる 1 行を区切る文字(通常、CRLF 改行文字["\r\n"])は飛ばされて処理されます。 正確には 4 による剰余が 1 である位置にある文字が "=" 以外の Base64 で使用できない文字が出現した場合は飛ばされて処理されます。 |
Base64 について | |
---|---|
Base64 とは、3 個の 1 バイト(8 ビット)の集合を 64 種類の印字可能な英数字 4 文字に変換し、 これらの文字以外の文字を扱えない通信環境においてマルチバイト文字やバイナリデータを処理するためのエンコード方式です。 Base64 の詳細は、 RFC2045: 6.8. Base64 Content-Transfer-Encoding を参照してください。 |
SFXMailUtility::EncodeBase64 | SFXMailUtility::GetEncodedSizeBase64 | BREW API IWEBUTIL_DecodeBase64 | RFC2045: 6.8. Base64 Content-Transfer-Encoding
[ public, static ] SFCError DecodeQuotedPrintable( ACharConstPtr in // [入力] Quoted-Printable エンコードされたデータへのポインタ UInt32 size // [入力] Quoted-Printable エンコードされたデータのサイズ SFXBufferPtr out // [出力] Quoted-Printable デコードされたデータが格納された場所へのポインタ Bool text = true // [入力] テキストモードかバイナリモードか: デフォルトは true(テキストモード) );
[ public, static ] SFCError DecodeQuotedPrintable( SFXBufferConstRef in // [入力] Quoted-Printable エンコードされたデータへの参照 SFXBufferPtr out // [出力] Quoted-Printable デコードされたデータが格納された場所へのポインタ Bool text = true // [入力] テキストモードかバイナリモードか: デフォルトは true(テキストモード) );
[ public, static ] SFCError DecodeQuotedPrintable( SFXAnsiStringConstRef in // [入力] Quoted-Printable エンコードされたデータへの参照 SFXAnsiStringPtr out // [出力] Quoted-Printable デコードされたデータが格納された場所へのポインタ Bool text = true // [入力] テキストモードであるかどうか: デフォルトは true。基本的にテキストモードを指定する。 );
この関数は、指定されたデータを Quoted-Printable デコードします。
テキストモードについて | |
---|---|
in 引数に指定するテキストモードの内容は以下の通りです (基本的にデフォルト設定のテキストモードを指定します)。
|
注意 | |
---|---|
不正な文字は飛ばされて処理され、 SFERR_INVALID_FORMAT が返却されます。 エンコード時に追加された各行末にある '=' 文字、CR 文字、LF 文字の 3 文字は飛ばされて処理されます。 この場合、SFERR_INVALID_FORMAT は返却されません。 |
Quoted-Printable について | |
---|---|
Quoted-Printable とは、 "=" を除くすべての印字可能な US-ASCII 文字(0x21 から 0x7E)はそのまま使い、 それ以外の文字と "=" は "=??" のような "=" と文字コードの16進数で表記するエンコード方式です。 デコードするとき、"=" を取り除き、 16進表記になっているコードを対応する文字に置き換えます。 Quoted-Printable の詳細は、 RFC2045: 6.7. Quoted-Printable Content-Transfer-Encoding を参照してください。 |
SFXMailUtility::EncodeQuotedPrintable | SFXMailUtility::GetEncodedSizeQuotedPrintable | RFC2045: 6.7. Quoted-Printable Content-Transfer-Encoding
[ public, static ] SFCError EncodeBase64( ACharConstPtr in // [入力] Base64 エンコードするデータへのポインタ UInt32 size // [入力] Base64 エンコードするデータのサイズ SFXBufferPtr out // [出力] Base64 エンコードされたデータが格納された場所へのポインタ UInt32 chars = 64 // [入力] 1 行の文字数 SFXAnsiStringConstRef delimiter = "\r\n" // [入力] 改行文字列 );
[ public, static ] SFCError EncodeBase64( SFXBufferConstRef in // [入力] Base64 エンコードするデータへの参照 SFXBufferPtr out // [出力] Base64 エンコードされたデータが格納された場所へのポインタ UInt32 chars = 64 // [入力] 1 行の文字数 SFXAnsiStringConstRef delimiter = "\r\n" // [入力] 改行文字列 );
[ public, static ] SFCError EncodeBase64( SFXAnsiStringConstRef in // [入力] Base64 エンコードするデータへの参照 SFXAnsiStringPtr out // [出力] Base64 エンコードされたデータが格納された場所へのポインタ UInt32 chars = 64 // [入力] 1 行の文字数 SFXAnsiStringConstRef delimiter = "\r\n" // [入力] 区切り文字列(1 行を区切る文字) );
この関数は、指定されたデータを Base64 エンコードします。
注意 | |
---|---|
SFBWebUtil::EncodeBase64 関数と異なり、 この関数は改行の処理を行います。 chars / delimiter 引数のデフォルト値は 64 / "\r\n"(CRLF) です。 |
Base64 について | |
---|---|
Base64 とは、3 個の 1 バイト(8 ビット)の集合を 64 種類の印字可能な英数字 4 文字に変換し、 これらの文字以外の文字を扱えない通信環境においてマルチバイト文字やバイナリデータを処理するためのエンコード方式です。 Base64 の詳細は、 RFC2045: 6.8. Base64 Content-Transfer-Encoding を参照してください。 |
SFXMailUtility::DecodeBase64 | SFXMailUtility::GetEncodedSizeBase64 | SFBWebUtil::EncodeBase64 | BREW API IWEBUTIL_EncodeBase64 | RFC2045: 6.8. Base64 Content-Transfer-Encoding
[ public, static ] SFCError EncodeQuotedPrintable( ACharConstPtr in // [入力] Quoted-Printable エンコードするデータへのポインタ UInt32 size // [入力] Quoted-Printable エンコードするデータのサイズ SFXBufferPtr out // [出力] Quoted-Printable エンコードされたデータが格納された場所へのポインタ UInt32 chars = 64 // [入力] 1 行の文字数 Bool text = true // [入力] テキストモードであるかどうか: デフォルトは true。基本的にテキストモードを指定する。 );
[ public, static ] SFCError EncodeQuotedPrintable( SFXBufferConstRef in // [入力] Quoted-Printable エンコードするデータへの参照 SFXBufferPtr out // [出力] Quoted-Printable エンコードされたデータが格納された場所へのポインタ UInt32 chars = 64 // [入力] 1 行の文字数 Bool text = true // [入力] テキストモードかバイナリモードか: デフォルトは true(テキストモード) );
[ public, static ] SFCError EncodeQuotedPrintable( SFXAnsiStringConstRef in // [入力] Quoted-Printable エンコードするデータへの参照 SFXAnsiStringPtr out // [出力] Quoted-Printable エンコードされたデータが格納された場所へのポインタ UInt32 chars = 64 // [入力] 1 行の文字数 Bool text = true // [入力] テキストモードかバイナリモードか: デフォルトは true(テキストモード) );
この関数は、指定されたデータを Quoted-Printable エンコードします。
注意 | |
---|---|
chars 引数に指定した長さで改行の処理を行います。 chars 引数には、4 以上の値を指定します。 メール送信用データの場合は仕様上 1000 を超える値を指定してはいけません。 デフォルト値は 64 です。 |
テキストモードについて | |
---|---|
in 引数に指定するテキストモードの内容は以下の通りです (基本的にデフォルト設定のテキストモードを指定します)。
|
Quoted-Printable について | |
---|---|
Quoted-Printable とは、 "=" を除くすべての印字可能な US-ASCII 文字(0x21 から 0x7E)はそのまま使い、 それ以外の文字と "=" は "=??" のような "=" と文字コードの16進数で表記するエンコード方式です。 デコードするとき、"=" を取り除き、 16進表記になっているコードを対応する文字に置き換えます。 Quoted-Printable の詳細は、 RFC2045: 6.7. Quoted-Printable Content-Transfer-Encoding を参照してください。 |
SFXMailUtility::DecodeQuotedPrintable | SFXMailUtility::GetEncodedSizeQuotedPrintable | RFC2045: 6.7. Quoted-Printable Content-Transfer-Encoding
[ public, static ] Bool FindNextBoundary( ACharConstPtr start // [入力] 検索開始位置へのポインタ ACharConstPtr end // [入力] 検索終了位置へのポインタ SFXAnsiStringConstRef boundary // [入力] 境界文字列 ACharConstHandle found // [出力] 見つかった境界文字列の位置へのハンドル ACharConstHandle next // [出力] 見つかった境界文字列の次の文字へのハンドル );
検索する文字列の先頭へのポインタを指定します。
検索する文字列の終端へのポインタを指定します。 このポインタが指す文字は、検索対象に含まれません。
検索する境界文字列を指定します。
見つかった境界文字列の位置(境界文字列の前にある CRLF の CR 文字)へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
見つかった境界文字列の後にある最初の CRLF の次の文字、または検索終了位置へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
この関数は、start 引数と end 引数で指定された範囲の文字列)内で boundary 引数に指定された境界文字列を検索します。
"CRLF--境界文字列CRLF" が見つかったときは、 true が返却されます。 "CRLF--境界文字列--CRLF"が見つかったとき、または境界文字列が見つからなかったときは、 false が返却されます。
境界文字列が存在した場合、 found 引数には境界文字列の前にある CRLF の CR 文字へのハンドル、 next 引数には境界文字列の後にある最初の CRLF の次の文字または検索終了位置へのハンドルが返却されます。
境界文字列が存在しなかった場合、 found 引数と next 引数には end 引数に指定した値が返却されます。
なお、取得する必要がない場合は found / next 引数に null を指定します。
注意 | |
---|---|
通常、検索対象の文字列は MIME ドキュメントです。 |
境界文字列について | |
---|---|
MIME のマルチパート(multipart)のエンティティは、複数のエンティティを 1 つのエンティティにまとめて扱うことができます。 マルチパートのエンティティは、前置部分(preamble)、1 つ以上の本体部分(body-part)、後置部分(epilogue)から構成されます。 これらは境界文字列によって区切られます。 具体的には、 各本体部分(body-part)の前には境界行"CRLF--境界文字列CRLF"、 最後の本体部分(body-part)の後(終端)には境界行"CRLF--境界文字列--CRLF" が置かれて区切られます (境界行の行末の CRLF の前には任意の空白文字が含まれる可能性があります)。 なお、境界文字列は Content-Type フィールドの boundary パラメータに 1 文字以上 70 文字以下の文字列として設定します。 境界文字列についての詳細は、 RFC2046: 5.1. Multipart Media Type を参照してください |
[ public, static ] UInt32 GetEncodedSizeBase64( UInt32 size // [入力] Base64 形式にエンコードするデータのサイズ UInt32 chars // [入力] 1 行の文字数 UInt32 delimiter // [入力] 改行文字列の長さ );
データを Base64 エンコードしたときのサイズ
この関数は、指定されたサイズのデータを Base64 エンコードしたときのサイズを取得します。
chars / delimiter 引数には、1 行 / 区切り文字の長さを指定します。 delimiter 文字も含む長さが返却されます。
Base64 について | |
---|---|
Base64 とは、3 個の 1 バイト(8 ビット)の集合を 64 種類の印字可能な英数字 4 文字に変換し、 これらの文字以外の文字を扱えない通信環境においてマルチバイト文字やバイナリデータを処理するためのエンコード方式です。 Base64 の詳細は、 RFC2045: 6.8. Base64 Content-Transfer-Encoding を参照してください。 |
SFXMailUtility::EncodeBase64 | SFXMailUtility::DecodeBase64 | RFC2045: 6.8. Base64 Content-Transfer-Encoding
[ public, static ] UInt32 GetEncodedSizeQuotedPrintable( ACharConstPtr in // [入力] Quoted-Printable エンコードするデータへのポインタ UInt32 size // [入力] Quoted-Printable エンコードするデータのサイズ UInt32 chars // [入力] 1 行の文字数 Bool text // [入力] テキストモードかどうか );
指定されたデータを Quoted-Printable エンコードしたときのサイズ
この関数は、 指定されたデータを Quoted-Printable エンコードしたときのサイズを取得します。
chars 引数には、1 行の長さを指定します。 CRLF 改行文字(\r\n)も含む長さが返却されます。
Quoted-Printable について | |
---|---|
Quoted-Printable とは、 "=" を除くすべての印字可能な US-ASCII 文字(0x21 から 0x7E)はそのまま使い、 それ以外の文字と "=" は "=??" のような "=" と文字コードの16進数で表記するエンコード方式です。 デコードするとき、"=" を取り除き、 16進表記になっているコードを対応する文字に置き換えます。 Quoted-Printable の詳細は、 RFC2045: 6.7. Quoted-Printable Content-Transfer-Encoding を参照してください。 |
SFXMailUtility::EncodeQuotedPrintable | SFXMailUtility::DecodeQuotedPrintable | RFC2045: 6.7. Quoted-Printable Content-Transfer-Encoding
[ public, static ] SFCError GetHMACMD5( VoidConstPtr in // [入力] 入力データ UInt32 size // [入力] 入力データのサイズ SFXBufferConstRef key // [入力] キーへの参照 SFXBufferPtr out // [出力] HMAC-MD5 ハッシュ値(128 ビット)が格納された場所へのポインタ Bool isXdigit // [入力] 16 進数で出力するかどうか );
[ public, static ] SFCError GetHMACMD5( SFXBufferConstRef in // [入力] 入力データ SFXBufferConstRef key // [入力] キーへの参照 SFXBufferPtr out // [出力] HMAC-MD5 ハッシュ値(128 ビット)が格納された場所へのポインタ Bool isXdigit // [入力] 16 進数で出力するかどうか );
[ public, static ] SFCError GetHMACMD5( SFXAnsiStringConstRef in // [入力] 入力データ SFXAnsiStringConstRef key // [入力] キーへの参照 SFXAnsiStringPtr out // [出力] HMAC-MD5 ハッシュ値(128 ビット)が格納された場所へのポインタ Bool isXdigit // [入力] 16 進数で出力するかどうか );
この関数は、指定されたデータの HMAC-MD5 ハッシュ値(128 ビット)を取得します。
HMAC-MD5 について | |
---|---|
詳細は RFC2104: HMAC: Keyed-Hashing for Message Authentication を参照してください。 |
SFXMailUtility::GetMD5 | SFXMailUtility::GetKeyedMD5 | RFC2104: HMAC: Keyed-Hashing for Message Authentication | RFC1321: The MD5 Message-Digest Algorithm
[ public, static ] SFCError GetKeyedMD5( VoidConstPtr datagram // [入力] 入力データ UInt32 size // [入力] 入力データのサイズ SFXBufferConstRef key // [入力] キーへの参照 AChar keyfill // [入力] パッド SFXBufferPtr out // [出力] Keyed-MD5 ハッシュ値(128 ビット)が格納された場所へのポインタ Bool isXdigit // [入力] 16 進数で出力するかどうか );
[ public, static ] SFCError GetKeyedMD5( SFXBufferConstRef datagram // [入力] 入力データ SFXBufferConstRef key // [入力] キーへの参照 AChar keyfill // [入力] パッド(キーの次の 512 バイト境界までパディングする文字) SFXBufferPtr out // [出力] Keyed-MD5 ハッシュ値(128 ビット)が格納された場所へのポインタ Bool isXdigit // [入力] 16 進数で出力するかどうか );
[ public, static ] SFCError GetKeyedMD5( SFXAnsiStringConstRef datagram // [入力] 入力データ SFXAnsiStringConstRef key // [入力] キー AChar keyfill // [入力] パッド(キーの次の 512 バイト境界までパディングする文字) SFXAnsiStringPtr out // [出力] Keyed-MD5 ハッシュ値(128 ビット)が格納された場所へのポインタ Bool isXdigit // [入力] 16 進数で出力するかどうか );
この関数は、指定されたデータの Keyed-MD5 ハッシュ値(128 ビット)を取得します。
Keyed-MD5 について | |
---|---|
与えられた キー、キーパッド、データから文字列 "キー、キーパディング、データ、キー、MD5 パディング" を作成し、 この文字列から MD5(Message Digest Algorithm 5)を使用して 128 ビットのハッシュ値を計算するアルゴリズムです。 詳細は RFC1828: IP Authentication using Keyed MD5 を参照してください。 |
SFXMailUtility::GetMD5 | SFXMailUtility::GetHMACMD5 | RFC1828: IP Authentication using Keyed MD5 | RFC1321: The MD5 Message-Digest Algorithm
[ public, static ] SFCError GetMD5( VoidConstPtr in // [入力] 入力データ UInt32 size // [入力] 入力データのサイズ SFXBufferPtr out // [出力] MD5 ハッシュ値(128 ビット)が格納された場所へのポインタ Bool isXdigit // [入力] 16 進数で出力するかどうか );
[ public, static ] SFCError GetMD5( SFXBufferConstRef in // [入力] 入力データ SFXBufferPtr out // [出力] MD5 ハッシュ値(128 ビット)が格納された場所へのポインタ Bool isXdigit // [入力] 16 進数で出力するかどうか );
[ public, static ] SFCError GetMD5( SFXAnsiStringConstRef in // [入力] 入力データ SFXAnsiStringPtr out // [出力] MD5 ハッシュ値(128 ビット)が格納された場所へのポインタ Bool isXdigit // [入力] 16 進数で出力するかどうか );
この関数は、指定されたデータの MD5 ハッシュ値(128 ビット)を取得します。
注意 | |
---|---|
この関数は、内部で SFBHash クラスを使用します。 |
MD5 について | |
---|---|
MD5(Message Digest Algorithm 5)とは、 与えられた入力データの 128 ビットのハッシュ値を計算するアルゴリズムです。 詳細は RFC1321: The MD5 Message-Digest Algorithm を参照してください。 |
SFXMailUtility::GetKeyedMD5 | SFXMailUtility::GetHMACMD5 | SFBHash | RFC1321: The MD5 Message-Digest Algorithm
[ public, static ] SInt16 HexToByte( AChar c1 // [入力] 変換する 2 桁の 16 進数の上位桁の文字 AChar c2 // [入力] 変換する 2 桁の 16 進数の下位桁の文字 );
この関数は、指定された 2 桁の 16 進数表記の文字列を整数に変換します。
例えば、1B( c1 = '1'、c2 = 'B' ) は 27 に変換します。
注意 | |
---|---|
指定された文字が 16 進数の文字でない場合、変換に失敗します(-1 を返却します)。 |
この関数は、指定された 1 桁の 16 進数文字を整数に変換します。
例えば、'1' は 1 に、'B' は 11 に、'f' は 15 に変換します。
注意 | |
---|---|
指定された文字が 16 進数の文字でない場合、変換に失敗します(-1 を返却します)。 |
判定する文字を指定します。
この関数は、指定された文字が atext 文字かどうかを判定します。
atext について | |
---|---|
atext 文字とは、以下のように定義される英数字と "!"、"#"、"$"、"%" などの記号です。
atext := ALPHA / DIGIT / ; Any character except controls, "!" / "#" / ; SP, and specials. "$" / "%" / ; Used for atoms "&" / "'" / "*" / "+" / "-" / "/" / "=" / "?" / "^" / "_" / "`" / "{" / "|" / "}" / "~" ALPHA := <any ASCII alphabetic character> ; ( 0x41 - 0x5A ) DIGIT := <any ASCII decimal digit> ; ( 0x30 - 0x39 )
atext についての詳細は RFC2822: 3.2.4. Atom を参照してください。 |
SFXMailUtility::ParseAtom | SFXMailUtility::ParseDate | SFXMailUtility::ParseDotAtom | SFXMailUtility::ParseDotAtomText | SFXMailUtility::IsCTL | SFXMailUtility::IsTokenChar | SFXMailUtility::IsTspecials | SFXMailUtility::IsWSP | RFC2822: 3.2.4. Atom
判定する文字を指定します。
この関数は、指定された文字がコントロール文字かどうかを判定します。
注意 | |
---|---|
コントロール文字とは、以下のように定義される "0x00" から "0x1F" までと "0x7F" の文字です。
CTL = <any ASCII control character and DEL> ; ( 0x00 - 0x1F, 0x7F )
|
SFXMailUtility::IsAtext | SFXMailUtility::IsTokenChar | SFXMailUtility::IsTspecials | SFXMailUtility::IsWSP
判定する文字を指定します。
この関数は、指定された文字がトークンを構成する文字かどうかを判定します。
トークンを構成する文字 | |
---|---|
トークンは、以下のように TSPECAIL、スペース、コントロール以外の US-ASCII 文字で構成されます。 具体的には、0x21 から 0x7E までの文字で TSPECAIL でない文字がトークンを構成する文字になります。 token := 1*<any US-ASCII CHAR except SPACE, CTLs, or tspecials> tspecials := "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "\" / <"> "/" / "[" / "]" / "?" / "=" ; Must be in quoted-string, ; to use within parameter values SPACE := <ASCII SP, space> ; ( 32 )
トークンを構成する文字の詳細については RFC2045: Appendix A -- Collected Grammar を参照してください。 |
SFXMailUtility::ParseToken | SFXMailUtility::IsAtext | SFXMailUtility::IsCTL | SFXMailUtility::IsTspecials | SFXMailUtility::IsWSP | RFC2045: Appendix A -- Collected Grammar
判定する文字を指定します。
この関数は、指定された文字が TSPECIAL 文字かどうかを判定します。
TSPECIAL 文字 | |
---|---|
TSPECIAL 文字とは、メールヘッダーのフィールド値の中で使用する場合、 クオート(")しなければいけない記号であり、 以下の文字から構成されます。 tspecials := "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "\" / <"> "/" / "[" / "]" / "?" / "=" ; Must be in quoted-string, to use within parameter values
TSPECIAL 文字の詳細については RFC2045: Appendix A -- Collected Grammar を参照してください。 |
SFXMailUtility::IsAtext | SFXMailUtility::IsCTL | SFXMailUtility::IsTokenChar | SFXMailUtility::IsWSP | RFC2045: Appendix A -- Collected Grammar
[ public, static ] Bool IsValidFieldName( ACharConstPtr start // [入力] 文字列の先頭へのポインタ ACharConstPtr end = null // [入力] 文字列の終端へのポインタ: デフォルト値は '\0'(この場合、'\0' 文字が終端になる) );
文字列の先頭を指定します。
文字列の終端を指定します。 null を指定した場合は '\0' 文字を終端とします。
この関数は、 指定された文字列がメールヘッダーのフィールド名として有効かどうかを判定します。
注意 | |
---|---|
メールヘッダーのフィールド名は、"0x3A"(=":")を除く US-ASCII 値 "0x21" から "0x7E" までの文字で構成される必要があります。 |
判定する文字を指定します。
この関数は、指定された文字が WSP 文字(空白文字または TAB 文字)かどうかを判定します。
注意 | |
---|---|
空白文字の US-ASCII コードは "0x20"、TAB 文字の US-ASCII コードは "0x09" です。 |
SFXMailUtility::SkipWSP | SFXMailUtility::IsAtext | SFXMailUtility::IsCTL | SFXMailUtility::IsTokenChar | SFXMailUtility::IsTspecials | RFC2822: 2.2.2. Structured Header Field Bodies
[ public, static ] SFCError JISToShiftJIS( SFXAnsiStringConstRef in // [入力] 変換元の JIS コード文字列への参照 SFXAnsiStringPtr out // [出力] 変換後の Shift_JIS コード文字列が格納された場所へのポインタ AChar unconvChar = '\0' // [入力] 変換できない文字の代替文字: デフォルト値は '\0'(代替文字は使用されない) );
変換元の文字列です。JIS コード ( iso-2022-jp ) の文字列を指定します。
変換後の Shift_JIS コード文字列が格納された場所へのポインタが返却されます。
変換できない文字に関する代替文字を指定します。 引数を指定しない場合のデフォルト値は '\0' です(このとき、代替文字は使用されません)。
この関数は、 指定された JIS コード(iso-2022-jp)の文字列を Shift JIS コードに変換します。
unconvChar 引数を指定した場合、 変換できない文字は unconvChar 引数に指定した代替文字で置き換えられ、 戻り値は SFERR_NO_ERROR になります。
注意 | |
---|---|
半角カナもサポートしています。 |
JIS コード(iso-2022-jp)について | |
---|---|
JIS コード(iso-2022-jp)は、メールで使用される文字符号化方式です。 |
この関数は、指定されたバイト値を 16 進数の文字に変換します。
例えば、1 は '1'、11 は 'B' に変換されます。
注意 | |
---|---|
指定された数値が 16 以上である場合、変換に失敗します(-1 を AChar でキャストした値が返却されます)。 |
[ public, static ] SFCError ParseAddrSpec( ACharConstPtr start // [入力] 解析対象文字列の先頭へのポインタ ACharConstPtr end // [入力] 解析対象文字列の終端へのポインタ ACharConstHandle next // [出力] 次の解析対象文字列の先頭へのハンドル SFXAnsiStringPtr value // [出力] 解析結果のメールアドレス(addr-spec)が格納された場所へのポインタ );
解析する文字列の先頭へのポインタを指定します。
解析する文字列の終端へのポインタを指定します。 このポインタが指し示す文字自体は解析対象に含まれません。
次の解析対象文字列の先頭へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
解析結果のメールアドレス(addr-spec)が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
この関数は、指定された文字列からメールアドレス(addr-spec)を取得します。
From: フィールドや To: フィールドのメールアドレスを解析する場合は、 SFXMailUtility::ParseMailbox 関数や SFXMailUtility::ParseMailboxList 関数を使う必要があります。
メールアドレス(addr-spec)について | |
---|---|
メールアドレス(addr-spec)の詳細は、 RFC2822: 3.4.1. Addr-spec specification を参照してください。 |
[ public, static ] SFCError ParseAtom( ACharConstPtr start // [入力] 解析対象文字列の先頭へのポインタ ACharConstPtr end // [入力] 解析対象文字列の終端へのポインタ ACharConstHandle next // [出力] 次の解析対象文字列の先頭へのハンドル SFXAnsiStringPtr value // [出力] 解析結果の atom が格納された場所へのポインタ );
解析する文字列の先頭へのポインタを指定します。
解析する文字列の終端へのポインタを指定します。 このアドレスが指し示す文字自体は、解析対象に含まれません。
次の解析対象文字列の先頭へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
解析結果の atom が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
SFXMailUtility::ParseDotAtom | SFXMailUtility::ParseDotAtomText | SFXMailUtility::SkipWSP | SFXMailUtility::IsAtext | RFC2822: 3.2.4. Atom
[ public, static ] SFCError ParseContentType( SFXAnsiStringConstRef fieldValue // [入力] 解析対象文字列 SFXAnsiStringPtr mainType // [出力] 解析結果の Content-Type の type が格納された場所へのポインタ SFXAnsiStringPtr subType // [出力] 解析結果の Content-Type の subType が格納された場所へのポインタ SFXPropertyPtr paramList // [出力] 解析結果の パラメータリストが格納された場所へのポインタ );
解析対象文字列を指定します。
解析結果の Content-Type type が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
解析結果の Content-Type subType が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
解析結果のパラメータリストへのポインタが格納されます。 取得する必要がない場合は null を指定します。
この関数は、指定された文字列から Content-Type フィールドの値を取得します。
Content-Type について | |
---|---|
Content-Type の詳細は、 RFC2045: 5. Content-Type Header Field を参照してください。 |
SFXMailUtility::ParseParameterList | SFXMailUtility::ParseParameter | SFXMailUtility::ParseToken | SFXMailUtility::SkipWSP | RFC2045: 5. Content-Type Header Field
[ public, static ] SFCError ParseDate( ACharConstPtr start // [入力] 解析対象文字列の先頭へのポインタ ACharConstPtr end // [入力] 解析対象文字列の終端へのポインタ ACharConstHandle next // [出力] 次の解析対象文字列の先頭へのハンドル SFXDatePtr date // [出力] 日時が格納された場所へのポインタ SInt16Ptr zone // [出力] タイムゾーンが格納された場所へのポインタ );
[ public, static ] SFCError ParseDate( SFXAnsiStringConstRef str // [入力] 解析対象文字列 SFXDatePtr date // [出力] 解析結果の日時が格納された場所へのポインタ SInt16Ptr zone // [出力] 解析結果のタイムゾーンが格納された場所へのポインタ );
解析対象文字列の先頭へのポインタを指定します。
解析対象文字列の終端へのポインタを指定します。 このアドレスが指し示す文字自体は、解析対象に含まれません。
次の解析対象文字列の先頭へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
解析結果の日時が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
解析結果の日時のタイムゾーン(UTC に対する時差)が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
解析対象文字列を指定します。
[ public, static ] SFCError ParseDotAtom( ACharConstPtr start // [入力] 解析対象文字列の先頭へのポインタ ACharConstPtr end // [入力] 解析対象文字列の終端へのポインタ ACharConstHandle next // [出力] 次の解析対象文字列の先頭へのハンドル SFXAnsiStringPtr value // [出力] 解析結果の dot-atom が格納された場所へのポインタ );
解析対象文字列の先頭へのポインタを指定します。
解析対象文字列の終端へのポインタを指定します。 このアドレスが指し示す文字自体は、解析対象に含まれません。
次の解析対象文字列の先頭へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
解析結果の dot-atom が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
この関数は、指定された文字列から dot-atom を取得します。
注意 | |
---|---|
文字列の先頭と終端に空白を許す点においてのみ、dot-atom は dot-atom-text と異なります。 この関数は、文字列の初めの空白文字を読み飛ばします。 |
dot-atom について | |
---|---|
dot-atom の詳細は、 RFC2822: 3.2.4. Atom を参照してください。 |
SFXMailUtility::ParseAtom | SFXMailUtility::ParseDotAtomText | SFXMailUtility::IsAtext | RFC2822: 3.2.4. Atom
[ public, static ] SFCError ParseDotAtomText( ACharConstPtr start // [入力] 解析対象文字列の先頭へのポインタ ACharConstPtr end // [入力] 解析対象文字列の終端へのポインタ ACharConstHandle next // [出力] 次の解析対象文字列の先頭へのハンドル SFXAnsiStringPtr value // [出力] 解析結果の dot-atom-text が格納された場所へのポインタ );
解析対象文字列の先頭へのポインタを指定します。
解析対象文字列の終端へのポインタを指定します。 このアドレスが指し示す文字自体は、解析対象に含まれません。
次の解析対象文字列の先頭へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
解析結果の dot-atom-text が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
この関数は、指定された文字列から dot-atom-text を取得します。
注意 | |
---|---|
dot-atom-text とは、atext と ピリオド '.' からなる文字列です。 ピリオドを 2 つ続けたり、文字列の先頭や終端に置けません。 この関数は、文字列の初めの空白文字を読み飛ばしません。 文字列の初めが空白文字の場合は SFERR_INVALID_FORMAT を返します。 |
dot-atom-text について | |
---|---|
dot-atom-text の詳細は、 RFC2822: 3.2.4. Atom を参照してください。 |
SFXMailUtility::ParseAtom | SFXMailUtility::ParseDate | SFXMailUtility::ParseDotAtom | SFXMailUtility::IsAtext | RFC2822: 3.2.4. Atom
[ public, static ] SFCError ParseHeaderLine( ACharConstPtr start // [入力] 解析対象文字列の先頭へのポインタ ACharConstPtr end // [入力] 解析対象文字列の終端へのポインタ ACharConstHandle next // [出力] 次の解析対象文字列の先頭へのハンドル SFXAnsiStringPtr value1 // [出力] 解析結果のフィールド名が格納された場所へのポインタ SFXAnsiStringPtr value2 // [出力] 解析結果のフィールド値が格納された場所へのポインタ );
解析対象文字列の先頭へのポインタを指定します。
解析対象文字列の終端へのポインタを指定します。 このアドレスが指し示す文字自体は、解析対象に含まれません。
次の解析対象文字列の先頭へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
解析結果のフィールド名が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
解析結果のフィールド値が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
この関数は、指定された文字列からメールメッセージのヘッダーの 1 行を取得します。
注意 | |
---|---|
ヘッダーが複数行に分割されている(2 行目以降が WSP から始まる)場合も正しく取得できます。 |
メールメッセージのヘッダーについて | |
---|---|
メールメッセージのヘッダーの詳細は、 RFC2822: 2.2. Header Fields を参照してください。 |
SFXMailUtility::SkipWSP | SFXMailUtility::IsValidFieldName | SFXMailUtility::IsWSP | RFC2822: 2.2. Header Fields
[ 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)が格納された場所へのポインタ );
解析対象文字列の先頭へのポインタを指定します。
解析対象文字列の終端へのポインタを指定します。 このアドレスが指し示す文字自体は、解析対象に含まれません。
次の解析対象文字列の先頭へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
解析結果の名前が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
解析結果のメールアドレスが格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
解析対象文字列を指定します。
この関数は、指定された文字列からメールアドレス(mailbox)を取得します。
この関数は、次の (1)、(2) の addr-spec 形式、(3) の name-addr 形式を解析できます。
my@example.com
my@example.com (My Name)
My Name <my@example.com>
(2)、(3)の場合、ディスプレイネーム(My Name)も取得できます。 この関数は単一の mailbox しか解析できません。
mailbox のリストを取得する場合は SFXMailUtility::ParseMailboxList 関数を使います。
メールアドレス(mailbox)について | |
---|---|
メールアドレス(mailbox)の詳細は、 RFC2822: 3.4.1. Addr-spec specification を参照してください。 |
SFXMailUtility::ParseMailboxList | SFXMailUtility::ParseAddrSpec | SFXMailUtility::ParsePhrase | SFXMailUtility::SkipWSP | RFC2822: 3.4.1. Addr-spec specification
[ public, static ] SFCError ParseMailboxList( ACharConstPtr start // [入力] 解析対象文字列の先頭へのポインタ ACharConstPtr end // [入力] 解析対象文字列の終端へのポインタ ACharConstHandle next // [出力] 次の解析対象文字列の先頭へのハンドル MailboxHandle mailboxes // [出力] 解析結果のメールアドレスのリストが格納された場所へのハンドル SInt32Ptr mbxCount // [出力] 解析結果のメールアドレスの数が格納された場所へのポインタ );
[ public, static ] SFCError ParseMailboxList( SFXAnsiStringConstRef str // [入力] 解析対象文字列 MailboxHandle mailboxes // [出力] 解析結果のメールアドレスのリストが格納された場所へのハンドル SInt32Ptr mbxCount // [出力] 解析結果のメールアドレスの数が格納された場所へのポインタ );
解析対象文字列の先頭へのポインタを指定します。
解析対象文字列の終端へのポインタを指定します。 このアドレスが指し示す文字自体は、解析対象に含まれません。
次の解析対象文字列の先頭へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
解析結果のメールアドレスのリストが格納された場所へのハンドルが返却されます。 SFXMailUtility::Mailbox の配列が渡されます。
配列は、呼び出し側が "::delete[]" で解放する必要があります。 取得する必要がない場合は null を指定します。
解析結果のメールアドレスの数が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
解析対象文字列を指定します。
この関数は、指定された文字列からメールアドレスのリスト(mailbox-list)を取得します。
メールアドレスのリスト (mailbox-list)について | |
---|---|
メールアドレスのリスト (mailbox-list)の詳細は、 RFC2822: 3.4.1. Addr-spec specification を参照してください。 |
[ public, static ] SFCError ParseParameter( ACharConstPtr start // [入力] 解析対象文字列の先頭へのポインタ ACharConstPtr end // [入力] 解析対象文字列の終端へのポインタ ACharConstHandle next // [出力] 次の解析対象文字列の先頭へのハンドル SFXAnsiStringPtr name // [出力] 解析結果の属性名(attribute)が格納された場所へのポインタ SFXAnsiStringPtr value // [出力] 解析結果の属性値(value)が格納された場所へのポインタ );
解析対象文字列の先頭へのポインタを指定します。
解析対象文字列の終端へのポインタを指定します。 このアドレスが指し示す文字自体は、解析対象に含まれません。
次の解析対象文字列の先頭へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
解析結果の属性名(attribute)が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
解析結果の属性値が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
この関数は、指定された文字列から "attribute = value" を表されるパラメータを取得します。
注意 | |
---|---|
この関数は単一のパラメータしか解析できません。 パラメータのリストを取得する場合は SFXMailUtility::ParseParameterList 関数を使用します。 |
"attribute = value" で表されるパラメータについて | |
---|---|
attribute = value を表すパラメータの詳細は、 RFC2045: 5. Content-Type Header Field を参照してください。 |
SFXMailUtility::ParseParameterList | SFXMailUtility::ParseQuotedString | SFXMailUtility::ParseToken | SFXMailUtility::SkipWSP | RFC2045: 5. Content-Type Header Field
[ public, static ] SFCError ParseParameterList( ACharConstPtr start // [入力] 解析対象文字列の先頭へのポインタ ACharConstPtr end // [入力] 解析対象文字列の終端へのポインタ SFXPropertyPtr paramList // [出力] 解析結果のパラメータリストが格納された場所へのポインタ );
解析対象文字列の先頭へのポインタを指定します。
解析対象文字列の終端へのポインタを指定します。 このアドレスが指し示す文字自体は、解析対象に含まれません。
解析結果のパラメータのリストが格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
この関数は、指定された文字列から "attribute1 = value2; attribute2 = value2; ..." で表されるパラメータリストを取得します。
"attribute1 = value2; attribute2 = value2; ..." で表されるパラメータについて | |
---|---|
attribute = value を表すパラメータの詳細は、 RFC2045: 5. Content-Type Header Field を参照してください。 |
[ public, static ] SFCError ParsePhrase( ACharConstPtr start // [入力] 解析対象文字列の先頭へのポインタ ACharConstPtr end // [入力] 解析対象文字列の終端へのポインタ ACharConstHandle next // [出力] 次の解析対象文字列の先頭へのハンドル SFXAnsiStringPtr value // [出力] 解析結果の phrase が格納された場所へのポインタ );
解析対象文字列の先頭へのポインタを指定します。
解析対象文字列の終端へのポインタを指定します。 このアドレスが指し示す文字自体は、解析対象に含まれません。
次の解析対象文字列の先頭へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
解析結果の phrase が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
この関数は、指定された文字列から phrase を取得します。
注意 | |
---|---|
phrase は、1 つ以上の word から構成されています。 この関数は、 全ての word をひとつの空白文字でつなげた、 クオートされていない文字列を返します。 |
phrase について | |
---|---|
phrase の詳細は、 RFC2822: 3.2.6. Miscellaneous tokens を参照してください。 |
SFXMailUtility::ParseMailbox | SFXMailUtility::ParseWord | SFXMailUtility::SkipWSP | RFC2822: 3.2.6. Miscellaneous tokens
[ public, static ] SFCError ParseQuotedString( ACharConstPtr start // [入力] 解析対象文字列の先頭へのポインタ ACharConstPtr end // [入力] 解析対象文字列の終端へのポインタ ACharConstHandle next // [出力] 次の解析対象文字列の先頭へのハンドル SFXAnsiStringPtr value // [出力] 解析結果の quoted-string が格納された場所へのポインタ );
解析対象文字列の先頭へのポインタを指定します。
解析対象文字列の終端へのポインタを指定します。 このアドレスが指し示す文字自体は、解析対象に含まれません。
次の解析対象文字列の先頭へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
解析結果の quoted-string が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
この関数は、指定された文字列から quoted-string を取得します。
quoted-string について | |
---|---|
quoted-string の詳細は、 RFC2822: 3.2.5. Quoted strings を参照してください。 |
[ public, static ] SFCError ParseToken( ACharConstPtr start // [入力] 解析対象文字列の先頭へのポインタ ACharConstPtr end // [入力] 解析対象文字列の終端へのポインタ ACharConstHandle next // [出力] 次の解析対象文字列の先頭へのハンドル SFXAnsiStringPtr value // [出力] 解析結果の token が格納された場所へのポインタ );
解析対象文字列の先頭へのポインタを指定します。
解析対象文字列の終端へのポインタを指定します。 このアドレスが指し示す文字自体は、解析対象に含まれません。
次の解析対象文字列の先頭へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
解析結果の token が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
この関数は、指定された文字列から token を取得します。
トークンを構成する文字 | |
---|---|
トークンは、以下のように TSPECAIL、スペース、コントロール以外の US-ASCII 文字で構成されます。 token := 1*<any (US-ASCII) CHAR except SPACE, CTLs, or tspecials> tspecials := "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "\" / <"> "/" / "[" / "]" / "?" / "=" ; Must be in quoted-string, ; to use within parameter values
トークンを構成する文字の詳細については RFC2045: Appendix A -- Collected Grammar を参照してください。 |
SFXMailUtility::IsTokenChar | SFXMailUtility::ParseContentType | SFXMailUtility::SkipWSP | RFC2045: Appendix A -- Collected Grammar
[ public, static ] SFCError ParseWord( ACharConstPtr start // [入力] 解析対象文字列の先頭へのポインタ ACharConstPtr end // [入力] 解析対象文字列の終端へのポインタ ACharConstHandle next // [出力] 次の解析対象文字列の先頭へのハンドル SFXAnsiStringPtr value // [出力] 解析結果の word が格納された場所へのポインタ );
解析対象文字列の先頭へのポインタを指定します。
解析対象文字列の終端へのポインタを指定します。 このアドレスが指し示す文字自体は、解析対象に含まれません。
次の解析対象文字列の先頭へのハンドルが返却されます。 取得する必要がない場合は null を指定します。
解析結果の word が格納された場所へのポインタが返却されます。 取得する必要がない場合は null を指定します。
この関数は、指定された文字列から word を取得します。
word について | |
---|---|
word の詳細は、 RFC2822: 3.2.6. Miscellaneous tokens を参照してください。 |
SFXMailUtility::ParseAtom | SFXMailUtility::ParseQuotedString | SFXMailUtility::SkipWSP | RFC2822: 3.2.6. Miscellaneous tokens
[ public, static ] SFCError ShiftJISToJIS( SFXAnsiStringConstRef in // [入力] 変換元の Shift_JIS コード文字列への参照 SFXAnsiStringPtr out // [出力] 変換後の JIS コード文字列が格納された場所へのポインタ AChar unconvChar = '\0' // [入力] 変換できない文字の代替文字: デフォルト値は '\0'(代替文字は使用されない) );
変換元の Shift_JIS コード文字列を指定します。
変換後の JIS コード文字列が格納された場所へのポインタが返却されます。
変換できない文字に関する代替文字を指定します。 引数を指定しない場合のデフォルト値は '\0' です(このとき、代替文字は使用されません)。
この関数は、 指定された Shift_JIS コードの文字列を JIS コード(iso-2022-jp)に変換します。
unconvChar 引数を指定した場合、 変換できない文字は unconvChar 引数に指定した代替文字で置き換えられ、 戻り値は SFERR_NO_ERROR になります。
注意 | |
---|---|
半角カナもサポートしています。 |
JIS コード(iso-2022-jp)について | |
---|---|
JIS コード(iso-2022-jp)は、メールで使用される文字符号化方式です。 |
[ public, static ] Void SkipUntilCRLF( ACharConstHandle start // [入力] 探索のスタート位置へのポインタ、[出力] 次の CRLF の次の文字または '\0' 文字の位置へのポインタ );
この関数は、ポインタを start 引数に格納された位置からスタートして、 次の CRLF の次の文字または '\0' の位置まで進めます。
start 引数には、LF の 1 つ後ろの文字、 または '\0' を指すポインタが返却されます。
注意 | |
---|---|
次の CRLF がない場合は、 入力文字列の終端である '\0' 文字を指すポインタが返却されます。 |
[ public, static ] Void SkipWSP( ACharConstHandle start // [入力] 探索のスタート位置へのポインタ、[出力] WSP(空白文字または水平タブ)以外の文字の位置または探索対象の文字列の終端へのポインタ ACharConstPtr end // [入力] 探索対象の文字列の終端へのポインタ );
この関数は、ポインタを start 引数に格納された位置からスタートして、次の WSP(空白文字または水平タブ)以外の文字の位置まで進めます。
start 引数には、次の WSP(空白文字または水平タブ)以外の文字を指すポインタが返却されます。
WSP(空白文字または水平タブ)以外の文字が見つからなかった場合、 start 引数には探索対象の文字列の終端へのポインタ(end 引数と同じ値)が返却されます。
注意 | |
---|---|
探索のスタート位置が終了位置(end 引数に格納されている位置)よりも右にある場合は何も行いません。 |
struct Mailbox { SFXAnsiString name; // ディスプレイネーム SFXAnsiString addr; // メールの addr-spec };
name はメールのディスプレイネームを、addr はメールの addr-spec を表します。
SFXMailUtility::Mailbox 構造体のデータは SFXMailUtility::ParseMailbox 関数と SFXMailUtility::ParseMailboxList 関数を使用して取得できます。
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |